winapi - 如何丢弃窗口的一些消息?
问题描述
我的目标是在另一个进程的窗口中禁用一些类似工具提示的东西。WM_MOUSEMOVE
如果鼠标移动的坐标在窗口的某个矩形中,我的想法是阻止。
我可以SetWindowsHookEx
用来接收该消息(WH_CALLWNDPROC
和WH_GETMESSAGE
),但它不允许阻止它们。我可以返回 1 而不是调用CallNextHookEx
,但它不会阻止窗口的 WndProc 接收消息。但是,这种方法适用于阻止 MOUSE_LL/KEYBOARD_LL 中的事件。
SetWindowsHookEx
也不好,因为它为整个系统的所有窗口安装了钩子。
如何防止另一个进程的窗口接收某些窗口消息?
解决方案
WH_GETMESSAGE
消息挂钩不允许您“阻止”或取消消息,但您可以修改它。因此只需更改lpMsg->message
为WM_NULL
以防止鼠标移动消息被目标窗口处理。
推荐阅读
- javascript - 多模态js+php
- python - 使用参数发出 GET 请求的结果与编码的 url 不同
- php - WP_Mail $to 字段在硬编码时有效,但在使用 ACF 字段时无效
- android - 创建自定义首选项
- python - 将字符串数组转换为以字符串为变量名的变量数组
- python - 将 1d numpy ndarray 分配到 2d 数组的列中
- android - DatePickerDialog 中的内存泄漏。如何识别是什么问题?
- kubernetes - Traefik 'PathPrefix' 没有按预期工作
- amazon-redshift - Amazon Redshift 中的每周开始(周日开始)
- android - 将应用程序设置为 minSdkVersion 9 时遇到问题