钩子中如何拦截别的窗口中的指定Caption按钮的事件?

ysb 2005-03-08 10:02:38
我使用了
SetWindowsHookEx(WH_CALLWNDPROC, CallWndProc, hins, 0)
但是如何在CallWndProc中知道消息是哪个按钮投递过来的?
谢谢!
...全文
279 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzheng318 2005-03-08
  • 打赏
  • 举报
回复
你是的是什么?SetCapture
ysb 2005-03-08
  • 打赏
  • 举报
回复
vcleaner,你指的findwindow(ex)是在WM_COMMAND时调用,还是在WM_SYSCOMMAND时调用?
如果是前者,点击按钮时就会触发,这时能找到窗口,然后这样再EnumChildWindows时是没有意义的,因为只要是这个窗口中的按钮被点击了,就一样去EnumChildWindows,这样还是无法实现。

如果是WM_SYSCOMMAND,好像点击按钮时又不会被触发。

是不是我的理解有问题?还是怎么回事?
shxng 2005-03-08
  • 打赏
  • 举报
回复
学习ing
xuzheng318 2005-03-08
  • 打赏
  • 举报
回复
WM_SYSCOMMAND消息参数中
老夏Max 2005-03-08
  • 打赏
  • 举报
回复
使用SPY++看看ID,然后使用kingzai说的方法:FindWindow(Ex)和EnumChildWindows获得按钮的句柄,然后使用FromHandle获得按钮的指针,然后GetWindowText获得Caption,判断是否是你需要的。然后拦截此按钮的消息!
kingzai 2005-03-08
  • 打赏
  • 举报
回复
you can get control id from using GetDlgCtrlID api. and you can get button hwnd using EnumChildWindows
ysb 2005-03-08
  • 打赏
  • 举报
回复
至于Caption,我这里只是描述我要做的事情,你可以认为我的描述是错误的,呵呵!

简单的说,就是我要拦截别人的程序中某个按钮的点击事件,又没有办法知道那个按钮的ID号,怎么去做?
呵呵,我想了很久都没有想到办法。
在WM_CREATE中倒是可以通过GetWindowText找到它,不过程序中不知道它是怎么搞的,所有的按钮得到的Text都是相同的。
老夏Max 2005-03-08
  • 打赏
  • 举报
回复
hook WM_SYSCOMMAND?
WM_SYSCOMMAND消息参数中有Caption吗?呵呵,继续关注!
kingzai 2005-03-08
  • 打赏
  • 举报
回复
hook WM_SYSCOMMAND message,SC_CLOSE,SC_MAXIMIZE...param.
老夏Max 2005-03-08
  • 打赏
  • 举报
回复
Caption!?兄弟是做VB的?呵呵
这个比较困难把,没有做过,关注!

15,471

社区成员

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

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