首页 > 解决方案 > 如何丢弃窗口的一些消息?

问题描述

我的目标是在另一个进程的窗口中禁用一些类似工具提示的东西。WM_MOUSEMOVE如果鼠标移动的坐标在窗口的某个矩形中,我的想法是阻止。

我可以SetWindowsHookEx用来接收该消息(WH_CALLWNDPROCWH_GETMESSAGE),但它不允许阻止它们。我可以返回 1 而不是调用CallNextHookEx,但它不会阻止窗口的 WndProc 接收消息。但是,这种方法适用于阻止 MOUSE_LL/KEYBOARD_LL 中的事件。

SetWindowsHookEx也不好,因为它为整个系统的所有窗口安装了钩子。

如何防止另一个进程的窗口接收某些窗口消息?

标签: winapiwindows-messagessetwindowshookex

解决方案


WH_GETMESSAGE消息挂钩不允许您“阻止”或取消消息,但您可以修改它。因此只需更改lpMsg->messageWM_NULL以防止鼠标移动消息被目标窗口处理。


推荐阅读