我弹出一个人家已经封装好的对话框,它里面的消息传递我一点都不知道 ,它上面有一个派生的CStatic类,上面画了3x3的9个格子,通过鼠标我点击第4个格子,它旁边的一个静态文本会显示“4”
我现在的目的是不能用鼠标,而是自己用程序控制模拟鼠标(用sendmessage),即给第4个格子发送wm_lbuttondown和wm_lbuttonup事件,我下面方法都试过了,可是那个静态文本一直显示初始的“1”,好像就没反应
1,给那个派生的CStatic类 窗口发送鼠标按下、弹起事件
2,给对话框发送鼠标按下、弹起事件
(说明一下,我的鼠标单击位置应该没算错,因为我用SetCurPos可以看到鼠标放的位置和我预想的一样,发送消息的位置是相对于我要发送窗口的左上角)
请大家帮我想想我还应该给哪个窗口发送事件啊,或是大家认为我还应该发送什么事件才能得到我用鼠标实现的效果
我现在的目的是不能用鼠标,而是自己用程序控制模拟鼠标(用sendmessage),即给第4个格子发送wm_lbuttondown和wm_lbuttonup事件,我下面方法都试过了,可是那个静态文本一直显示初始的“1”,好像就没反应
1,给那个派生的CStatic类 窗口发送鼠标按下、弹起事件
2,给对话框发送鼠标按下、弹起事件
(说明一下,我的鼠标单击位置应该没算错,因为我用SetCurPos可以看到鼠标放的位置和我预想的一样,发送消息的位置是相对于我要发送窗口的左上角)
请大家帮我想想我还应该给哪个窗口发送事件啊,或是大家认为我还应该发送什么事件才能得到我用鼠标实现的效果
2.然后用 SendInput 模拟鼠标按下,弹起:
INPUT ip;
//mouse down
ip.type=INPUT_MOUSE;
ip.mi.dx=0;
ip.mi.dy=0;
ip.mi.mouseData=0;
ip.mi.dwFlags=MOUSEEVENTF_LEFTDOWN;
ip.mi.time=0;
ip.mi.dwExtraInfo=0;
SendInput(1,&ip,sizeof(INPUT));
//mouse up
ip.type=INPUT_MOUSE;
ip.mi.dx=0;
ip.mi.dy=0;
ip.mi.mouseData=0;
ip.mi.dwFlags=MOUSEEVENTF_LEFTUP;
ip.mi.time=0;
ip.mi.dwExtraInfo=0;
SendInput(1,&ip,sizeof(INPUT));
只是我用mouse_event事件或是用SendInput模拟鼠标了,对我那个对话框都没反应,它还是一如既往的显示‘1’,好郁闷啊,我就差这一步了,求救啊,还有什么办法啊
mfc及win32编程,使用sendmessage,请确认一下,你的消息是否发送到预定目标。如果没有那就是句柄没传对