从WM_CHAR消息中获取扫描代码

时间:2014-01-24 12:19:30

标签: c++ windows keyboard scancodes

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

1 个答案:

答案 0 :(得分:4)

根据WM_CHAR文档,扫描代码位于lParam参数的16-23位,因此只需移位和掩码:

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

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

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