如何丢弃 window 的一些消息?
How to discard some messages for a window?
我的目标是在另一个进程的 window 中禁用一些类似工具提示的东西。如果鼠标移动的坐标在 window.
的某个矩形内,我的想法是阻止 WM_MOUSEMOVE
我可以使用 SetWindowsHookEx
来接收消息(WH_CALLWNDPROC
和 WH_GETMESSAGE
),但它不允许阻止它们。我可以 return 1 而不是调用 CallNextHookEx
,但它不会阻止 window 的 WndProc 接收消息。但是,此方法适用于 MOUSE_LL/KEYBOARD_LL.
中的阻止事件
SetWindowsHookEx
也不好,因为它安装了挂钩到整个系统的所有 windows。
如何防止另一个进程的 window 接收某些 windows 消息?
WH_GETMESSAGE
消息挂钩不允许您 "block" 或取消消息,但您可以修改它。所以只需将 lpMsg->message
更改为 WM_NULL
即可防止鼠标移动消息被目标 window.
处理
我的目标是在另一个进程的 window 中禁用一些类似工具提示的东西。如果鼠标移动的坐标在 window.
的某个矩形内,我的想法是阻止WM_MOUSEMOVE
我可以使用 SetWindowsHookEx
来接收消息(WH_CALLWNDPROC
和 WH_GETMESSAGE
),但它不允许阻止它们。我可以 return 1 而不是调用 CallNextHookEx
,但它不会阻止 window 的 WndProc 接收消息。但是,此方法适用于 MOUSE_LL/KEYBOARD_LL.
SetWindowsHookEx
也不好,因为它安装了挂钩到整个系统的所有 windows。
如何防止另一个进程的 window 接收某些 windows 消息?
WH_GETMESSAGE
消息挂钩不允许您 "block" 或取消消息,但您可以修改它。所以只需将 lpMsg->message
更改为 WM_NULL
即可防止鼠标移动消息被目标 window.