拦截对话框中的按钮消息

来源:互联网 发布:linux dd u盘 恢复 编辑:程序博客网 时间:2024/06/05 05:28

小弟想拦截对话框中的按钮消息,就是对话框中的BUTTON按下时的消息 ,很多对话框包括WINDOWS自己的对话框,这个消息比较好过滤,我只要安装 WH_CALLWNDPROC 钩子,在WM_COMMADN 消息中,加入以下过滤条件 :
CWPSTRUCT* pCwp = (CWPSTRUCT*)lParam;
(HIWORD(pCwp->wParam) == 0 )&& ((HWND) (pCwp->lParam )!= NULL)
基本可以准确捕获到对话框的按钮消息。

但我也发现许多对话框,用上面的方法是捕获不到的。也许当按下按钮时会发出 WM_COMMAND消息,但我的程序是没有办法过滤到这个消息,因为WM_COMMAND消息实在是太多了,我怎么知道哪一个是按按钮产生的呢?所以用WM_COMMAND消息似乎不行,不知道其他消息行不行,我的目的是拦截用户在对话框中进行的操作,比如按下按钮,或者勾选了单选框等等,我不关心用户进行了什么操作,但我一定要拦截这个消息。 用其他类型的钩子会不会容易实现?

WH_MSGFILTER钩子似乎可以捕捉到按钮本身的消息?小弟没用过这种钩子,请熟悉的大哥们给个建议。谢谢,分不够再加。分不是问题

原创粉丝点击