如何解决有关在上下文菜单上获取键盘笔触的问题
我通过挂钩 GetMessage / PeekMessage 来过滤传递到特定Win32应用程序的键盘消息,除上下文菜单外,它都可以正常工作。 例如,当我右键单击记事本中的空白区域并按P从剪贴板粘贴文本时,我根本看不到GetMessaage(WM_KEYDOWN ...)被调用。是否有其他用于从上下文队列的消息队列中获取键盘消息的API? 顺便说一句,出于特定原因,我不能为此目的使用 WH_KEYBOARD_LL 。
解决方法
这是设计使然。
我可以在记事本/编辑控件上重现此问题。与相关工程师讨论后,可以确定在按下鼠标右键并按P后显示的菜单可以接收WM_KEYDOWN
,但是WM_KEYDOWN
消息在菜单内部处理,并转换为其他消息。消息。这就是为什么我们无法在GetMessage
中进行监视的原因。我们不知道系统菜单内的消息处理机制,但是如果您有兴趣,可以绘制菜单并自己进行测试。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。