如何发送WM_COMMAND消息(在线等待)

stevecrisewu 2004-09-10 02:58:55
我们知道向一个Button发送WM_COMMAND可以按照如下方法:
设定hwndParent,hwndChild分别为parent handle和button handle
int nID=::GetDlgCtrlID(hwndChild);
::SendMessage(hwndParent,WM_COMMAND,nID,LPARAM(hwndChild));
但是,我对一个进程发送消息之后,该进程并没有接受到WM_COMMAND

我跟踪调试时候发现GetDlgCtrlID返回的nID有问题,它具有hwndChild相同的值
MSND中有句话关于该函数的
Although GetDlgCtrlID may return a value if hwndCtl is a handle to a top-level window, top-level windows cannot have identifiers and such a return value is never valid.


问题:
我如何给top-level window上的某个button发送WM_COMMAND消息呢
...全文
296 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
stevecrisewu 2004-09-10
  • 打赏
  • 举报
回复
虽然行不通
因为要设置SetActiveWindow后才能收到BM_CLICK
不过我通过别的办法解决了
谢谢先
呵呵
高兴,接分。
flyelf 2004-09-10
  • 打赏
  • 举报
回复
lParam参数为0
lixiaosan 2004-09-10
  • 打赏
  • 举报
回复
hwnd = FindWindow(...); //找到窗口句柄
hwnd = FindWindowEx(...); //找到按钮句柄
SendMessage(hwnd, BM_CLICK, 0, 0);
stevecrisewu 2004-09-10
  • 打赏
  • 举报
回复
分不够再加

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧