大家好,一些模拟鼠标的问题弄得我很乱,希望大家帮忙看看,谢谢!问题一:请问为什么发送鼠标点击消息给记事本窗口没有反应,只有发到记事本的编辑框窗口才有反应?我试过很多种写法:
SendMessage(记事本句柄,WM_RBUTTONDOWN,NULL,NULL);
SendMessage(记事本句柄,WM_RBUTTONUP,NULL,NULL);//最基本的写法,没反应SendMessage(记事本句柄,WM_NCRBUTTONDOWN,HTCAPTION,0x000A000A);
SendMessage(记事本句柄,WM_NCRBUTTONUP,HTCAPTION,0x000A000A);//模拟点击标题栏,没反应SendMessage((HWND)0x0003088E,WM_NCRBUTTONDOWN,(WPARAM)0x0003088E,(LPARAM)0x02040002);
SendMessage((HWND)0x0003088E,WM_NCRBUTTONUP,(WPARAM)0x0003088E,(LPARAM)0x02040002);//这是我完全依照SPY++提供的数据把数据直接写到函数里,一样没反应但如果把“记事本句柄”改成“记事本里的编辑框句柄”就能成功模拟。有人说“因为记本事的框架窗口被视图窗口挡住了.所以接收不到。”如果是这个原因,请问应该怎样解决?如何模拟鼠标点击窗口的标题栏?问题二:其实我想实现的一个功能是,鼠标点击一个小窗口,但这个小窗口不处理这个消息而把这个鼠标点击的消息传递到这个小窗口后面的窗口。例如,这个小窗口后面就是桌面了,我在这个小窗口上面点击右键,则会出现右键点桌面的弹出菜单。再例如,这个小窗口后面有个窗口的关闭按钮,我在这个小窗口上点击左键,那么后面的窗口就会关闭了。请问这应该如何实现?谢谢大家!!
SendMessage(记事本句柄,WM_RBUTTONDOWN,NULL,NULL);
SendMessage(记事本句柄,WM_RBUTTONUP,NULL,NULL);//最基本的写法,没反应SendMessage(记事本句柄,WM_NCRBUTTONDOWN,HTCAPTION,0x000A000A);
SendMessage(记事本句柄,WM_NCRBUTTONUP,HTCAPTION,0x000A000A);//模拟点击标题栏,没反应SendMessage((HWND)0x0003088E,WM_NCRBUTTONDOWN,(WPARAM)0x0003088E,(LPARAM)0x02040002);
SendMessage((HWND)0x0003088E,WM_NCRBUTTONUP,(WPARAM)0x0003088E,(LPARAM)0x02040002);//这是我完全依照SPY++提供的数据把数据直接写到函数里,一样没反应但如果把“记事本句柄”改成“记事本里的编辑框句柄”就能成功模拟。有人说“因为记本事的框架窗口被视图窗口挡住了.所以接收不到。”如果是这个原因,请问应该怎样解决?如何模拟鼠标点击窗口的标题栏?问题二:其实我想实现的一个功能是,鼠标点击一个小窗口,但这个小窗口不处理这个消息而把这个鼠标点击的消息传递到这个小窗口后面的窗口。例如,这个小窗口后面就是桌面了,我在这个小窗口上面点击右键,则会出现右键点桌面的弹出菜单。再例如,这个小窗口后面有个窗口的关闭按钮,我在这个小窗口上点击左键,那么后面的窗口就会关闭了。请问这应该如何实现?谢谢大家!!
标题栏是系统处理的,给窗口发鼠标消息达不到你想要的效果。你想实现什么就直接发相应的WM_SYSCOMMAND消息。
哦……谢谢。那这样的话我的第二个问题就很难很难实现了,因为如果小窗口后面是某个窗口的标题栏的话,那就很难根据鼠标的位置正确模拟点击后面窗口的标题栏了。to CathySun118:
谢谢。其实PostMessage我也试过了,也是不行的。