2 qq 28638587 qq_28638587 于 2015.05.31 23:45 提问

MFC向其他程序发送wm_command消息失败

MFC 点击按钮向其他程序发送wm_command消息,
_点击按钮发送后,要移动一下鼠标或键盘按一下键,才会发出消息,目标窗口才会做出响应,
请问是怎么回事,要怎么解决.
如果鼠标不动,消息发不出来.目标窗口没反应

    HWND hwnd_sj = ::FindWindow(NULL,L"数据下载");
    SendMessage(hwnd_sj,WM_COMMAND,0x0abe1, 0);

    return;

用网上下载的消息调试器发送成功

5个回答

a1193561652
a1193561652   Rxr 2015.06.01 00:02
已采纳

是移动鼠标后才发出WM_COMMAND,还是已经发送了可是移动鼠标后目标才响应?

qq_28638587
qq_28638587 回复纵横车: 晚上回家试了一下,是前面的循环出了问题,谢谢.
2 年多之前 回复
a1193561652
a1193561652 回复qq_28638587: 那是不是你发送消息的部分有什么问题?要移动鼠标才发出,下个断点看看。
2 年多之前 回复
qq_28638587
qq_28638587 移动鼠标后才发出,如果不移动鼠标,spy++检测不到目标窗口消息
2 年多之前 回复
caozhy
caozhy   Ds   Rxr 2015.06.01 00:13

具体检查handle wparam lparam是否正确。
0x0abe1这是怎么得来的。看下控件的id

qq_28638587
qq_28638587 spy++,查的
2 年多之前 回复
qq_28638587
qq_28638587 控件id是0000abe1,spy+用网上下载的工具发送这个是成功的。
2 年多之前 回复
91program
91program   Ds   Rxr 2015.06.01 07:27

发送 WM_COMMAND 消息后,再模拟发送一个或多个鼠标按下/移动/抬起的消息试试

91program
91program 最简单的是只发鼠标移动的消息,因为这个不会产生什么误动作。
2 年多之前 回复
lx624909677
lx624909677   Ds   Rxr 2015.06.01 12:04

用SPY++检测下那个程序是否真的有收到了这个消息

charlsom
charlsom 是这样的,鼠标不动,消息貌似就没发出来。
2 年多之前 回复
lx624909677
lx624909677 回复charlsom: 那就说明那个界面就没有接收成功消息啊
2 年多之前 回复
charlsom
charlsom 鼠标一移动,马上就有消息,不移动就没有
2 年多之前 回复
tianyang2008
tianyang2008   2015.06.01 15:26

这个问题。。最好保证自己的服务是在idle状态。如果在堵塞状态是接收不到消息的。

Csdn user default icon
上传中...
上传图片
插入图片