c++ - 从 WM_CHAR 消息中获取扫描码

标签 c++ windows keyboard scancodes

如何将通过 WndProc 中的 WM_CHAR 捕获的任何语言的字符转换为键盘扫描码?就像按下的按钮是 x 它会返回 0x2d 等等。

最佳答案

根据 WM_CHAR,扫描码在 lParam 参数的第 16-23 位中文档,所以只需移位和掩码:

int scanCode = (lParam >> 16) & 0xff;

如果你有一个角色,你可以调用OemKeyScan ,将扫描码放在低字节:

char c='X';
int scanCode=OemKeyScan(c) & 0x0ff;

关于c++ - 从 WM_CHAR 消息中获取扫描码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21332553/

相关文章:

c++ - 初始目录不适用于 CFileDialog

windows - 自托管时究竟是什么导致了 AddressAccessDeniedException : HTTP could not register URL

c++ - 我可以使用哪种 C++ 软件 IDE 来面向 Windows、Linux 和 OSX?

c++ - 如何制作跨平台的c++内联汇编语言?

c++ - Visual Studio 禁用特定目录中文件的警告

windows - 批处理循环错误 - 仅复制 1 个文件

ios - 在不显示键盘的情况下获取iOS键盘的高度

Android 键盘字符验证

ios:在 TextView 中编辑时,键盘返回键不起作用

c++ - 为什么没有 std::protect?