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