非虚拟键的 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 虚拟内存

包含非数字键的 JavaScript 数组的正确术语是啥? [关闭]

基于非主键的ef核心查询

Hibernate一方对多方非主键的关联

数据库设计和非数字主键的使用