C语言什么函数能发送鼠标移消息?postmessage能吗

如何使用?

第1个回答  2011-12-22
可以
B00L PostMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam);

关于后两个类型:
typedef UINT WPARAM;
typedef LONG LPARAM;
都是4字节

hWnd--要发给的程序句柄
Msg:
Msg=WM_MOUSEMOVE..鼠标移动事件

wParam:
MK_CONTROL ctrl键按下.
MK_LBUTTON 鼠标左键键按下.
MK_MBUTTON 鼠标中间键按下.
MK_RBUTTON 鼠标右键按下.
MK_SHIFT shift键按下.

lParam--高位当前鼠标y坐标,低位当前鼠标x坐标

比如给句柄为hWnd的程序队列发送一个鼠标移动信息,同时鼠标左键和中间处于按下状态,鼠标坐标为(120,100)
PostMessage(hWnd, WM_MOUSEMOVE ,MK_LBUTTON|MK_MBUTTON,(16<<100)|120);

如果是要发送数据,然后你在程序端自己处理的话,推荐用sendmessage函数,因为PostMessage只是把消息发送到程序的消息队列去,程序自动处理.就是说,如果接收消息的程序是你自己写,用sendmessage就可以,如果是别人写的程序,你要仿真一个事件给那个程序,那么就用PostMessage
如果用
SendMessage(Hwnd, WM_MOUSEMOVE , x, y);

其中
x:wParam,取值范围
MK_CONTROL Set if the ctrl key is down.
MK_LBUTTON Set if the left mouse button is down.
MK_MBUTTON Set if the middle mouse button is down.
MK_RBUTTON Set if the right mouse button is down.
MK_SHIFT Set if the shift key is down.

y:lParam,鼠标的坐标
xPos = LOWORD(lParam); //horizontal position of cursor
yPos = HIWORD(lParam); //vertical position of cursor

你就可以在程序里重载虚函数LRESULT CALLBACK WindowProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)
switch(message)
{
case WM_MOUSEMOVE:
//写你要在鼠标移动时做的处理
break;
.....
}
CDialog::WindowProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam);
}

CDialog::WindowProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam);是MFC自己的处理函数,最好加上,不然会很麻烦
很简单的SendMessage和postmessage一样使用方法

C语言什么函数能发送鼠标移消息?postmessage能吗
如果是要发送数据,然后你在程序端自己处理的话,推荐用sendmessage函数,因为PostMessage只是把消息发送到程序的消息队列去,程序自动处理.就是说,如果接收消息的程序是你自己写,用sendmessage就可以,如果是别人写的程序,你要仿真一个事件给那个程序,那么就用PostMessage 如果用 SendMessage(Hwnd, WM_MOUSEMOVE...

C语言的windows编程问题:如何向一个窗口传递按键消息。
用SendMessage();可以搞定 但一般用 PostMessage(); 2个函数的参数是一样的 但实现过程不一样 SendMessage(hWnd,WM_CHAR,'c',0);\/*这里的c就是你要按下的键值 可以小写 也可以大写*\/ PostMessage(hWnd,WM_CHAR,'c',0);\/*这里的c就是你要按下的键值 可以小写 也可以大写*\/ 要特定时间...

C语言中postmessage的参数是什么,有没有使用的例子?
函数原型:B00L PostMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam); 函数功能:该函数将一个消息放入(寄送)到与指定窗口创建的线程相联系消息队列里,不等待线程处理消息就返回,是异步消息模式。消息队列里的消息通过调用GetMessage和PeekMessage取得。参数: hWnd:...

C语言函数能不能带int argc,char *argv[]这两个参数呢???不是主函数
可以使用API函数来响应键盘的输入 API之消息函数 BroadcastSystemMessage 将一条系统消息广播给系统中所有的顶级窗口 GetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置 GetMessageTime 取得消息队列中上一条消息处理完毕时的时间 PostMessage 将一条消息投递到指定窗口的消息队列 中国3S吧 ...

C语言问题?
1、通过windowAPI函数FindWindow来获取窗口句柄。2、遍历窗口下控件句柄,找到输入框句柄。3、通过窗口句柄找到进程id(GetWindowThreadProcessId函数),再通过id获取进程句柄(OpenProcess函数)。4、向目标进程申请内存(VirtualAllocEx),再通过PostMessage函数异步发送消息获取目标控件内的内容(具体消息要结合...

有没有关于C语言里面的英语单词的意思
for:一种循环语句(可意会不可言传)signed:生命有符号类型变量或函数 void :声明函数无返回值或无参数,声明无类型指针(基本上就这三个作用)default:开关语句中的“其他”分支 goto:无条件跳转语句 sizeof:计算数据类型长度 volatile:说明变量在程序执行中可被隐含地改变 do :循环语句的循环体 ...

有没有关于C语言里面的英语单词的意思
for:一种循环语句(可意会不可言传)signed:生命有符号类型变量或函数 void :声明函数无返回值或无参数,声明无类型指针(基本上就这三个作用)default:开关语句中的“其他”分支 goto:无条件跳转语句 sizeof:计算数据类型长度 volatile:说明变量在程序执行中可被隐含地改变 do :循环语句的循环体 ...

妙解关闭MySQL弹窗的C利器c关闭mysql弹窗
PostMessage(hwnd, WM_CLOSE,0,0);} return 0;} 这段代码中,首先使用FindWindow函数查找弹窗句柄,然后使用PostMessage函数发送WM_CLOSE消息,关闭弹窗。编译成功后,我们将可执行文件保存为“mysqlclose.exe”,并放到MySQL的安装目录下的“bin”文件夹中。然后,在Windows任务计划程序中创建一个新的...

c语言如何调用方向键
在C代码中可设置如下自编的intokey( )函数,用以接收方向键值。库函数kbhit( )是检测是否有按键被按下,库函数getch( )是读取键盘按键值的,不需按回车,也不回显。dir是代表方向的变量,根据不同的方向键值,让dir取1到4这四个不同的值。其它的程序段就可根据dir的值让东西朝某个方向移动。...

求个C语言写的系统托盘图标代码
TASKBARCREATED; POINT pt;\/\/用于接收鼠标坐标 int xx;\/\/用于接收菜单选项返回值 \/\/ 不要修改TaskbarCreated,这是系统任务栏自定义的消息 WM_TASKBARCREATED = RegisterWindowMessage(TEXT("TaskbarCreated")); switch (message) { case WM_CREATE:\/\/窗口创建时候的消息. nid.cb...

相似回答
大家正在搜