有关在上下文菜单上获取键盘笔触的问题

问题描述

我通过挂钩 GetMessage / PeekMessage 来过滤传递到特定Win32应用程序的键盘消息,除上下文菜单外,它都可以正常工作。 例如,当我右键单击记事本中的空白区域并按P从剪贴板粘贴文本时,我根本看不到GetMessaage(WM_KEYDOWN ...)被调用。是否有其他用于从上下文队列的消息队列中获取键盘消息的API? 顺便说一句,出于特定原因,我不能为此目的使用 WH_KEYBOARD_LL

解决方法

这是设计使然。

我可以在记事本/编辑控件上重现此问题。与相关工程师讨论后,可以确定在按下鼠标右键并按P后显示的菜单可以接收WM_KEYDOWN,但是WM_KEYDOWN消息在菜单内部处理,并转换为其他消息。消息。这就是为什么我们无法在GetMessage中进行监视的原因。我们不知道系统菜单内的消息处理机制,但是如果您有兴趣,可以绘制菜单并自己进行测试。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...