3
如何将通过WM_CHAR
在WndProc
中捕获的任何语言的字符转换为键盘扫描代码?一样,如果按下该按钮是x
它将返回0x2d等从WM_CHAR消息获取扫描代码
如何将通过WM_CHAR
在WndProc
中捕获的任何语言的字符转换为键盘扫描代码?一样,如果按下该按钮是x
它将返回0x2d等从WM_CHAR消息获取扫描代码
扫描代码是在根据WM_CHAR文档位lParam参数的16-23,所以只移位和掩模:
int scanCode = (lParam >> 16) & 0xff;
如果你已经有了一个字符,你可以调用OemKeyScan,这使扫描码在低字节:
char c='X';
int scanCode=OemKeyScan(c) & 0x0ff;
但如何做到这一点,如果没有lParam的(如果不是在WndProc中)?如何将char转换为扫描码? – Romka
WndProc中总是有一个'lParam'(http://msdn.microsoft.com/en-us/library/windows/desktop/ms633573(v=vs.85).aspx)。你可以通过WM_CHAR捕获所以只要看看参数。 – Sean
我的意思是如果我在std :: getchar()中得到char。不在WndProc中。在WndProc工作正常 – Romka