我正在尝试处理 Windows 7 中控制台的按键事件。当我按下左 ctrl 键时,我期望得到代码 0x0008(0b00001000 - LEFT_CTRL_PRESSED),但我得到的不是这个,而是 0x0028(0b00101000 )。
...
DWORD n;
INPUT_RECORD ir;
HANDLE hin;
hin = GetStdHandler(STD_INPUT_HANDLE);
...
ReadConsoleInput(hin, &ir, 1, &n)...
...
if(ir.Event.KeyEvent.dwControlKeyState == LEFT_CTRL_PRESSED) {
// some code..
}
如果使用xor 32一切正常:
if((ir.Event.KeyEvent.dwControlKeyState ^ 32) == LEFT_CTRL_PRESSED) {
// some code..
}
额外的位在哪里?
ps:unicode中的项目