非虚拟键的 WM_KEYUP (windows.h WindowProc)
Posted
技术标签:
【中文标题】非虚拟键的 WM_KEYUP (windows.h WindowProc)【英文标题】:WM_KEYUP for non-Virtual Keys (windows.h WindowProc) 【发布时间】:2021-06-26 04:04:23 【问题描述】:我看到 WindowProc 可以使用 WM_CHAR 和 wParam 来检测字符输入,我还看到 WindowProc 可以使用 WM_KEYUP 和 wParam 来检测虚拟键释放。但是,我想检测用户释放其他键(例如分号)的时刻。我还没有在 MSDN 上找到这个场景的文档。
如何在 WindowProc 中检测没有虚拟键的键的键释放?
【问题讨论】:
【参考方案1】:所有按键都有一个虚拟按键代码,其中一些只是没有通过宏公开。例如,与字母关联的密钥具有该字母的 ASCII 码的 VK 值。对于分号,根据this list,您可以使用其中一个 OEM 键,具体取决于键盘。
作为解决问题的一种更便携的方法,可以从WM_KEYUP
调用MapVirtualKey
(或者,对于与键盘相关的键,MapVirtualKeyEx
)来查找它们的关联字符。
【讨论】:
以上是关于非虚拟键的 WM_KEYUP (windows.h WindowProc)的主要内容,如果未能解决你的问题,请参考以下文章
如何从WM_KeyUp或任何地方提取正确大小写的CharCode
27 windows_27_windows_Virtual_Memory 虚拟内存