我从WM_CHAR和WM_KEYDOWN消息获取文本输入和按键输入。
我的目的是过滤掉VK_代码与绑定到启用文本输入控件的键相同的WM_CHAR消息。
例如:游戏使用~来启用控制台,通过VK_OEM3和WM_KEYDOWN进行键绑定,但是控制台中需要使用WM_CHAR中的文本输入。
由于WM_KEYDOWN先发生,因此会激活控制台,然后将~的WM_CHAR发送到控制台缓冲区,这是我不想要的。
我认为防止这种情况的最佳方法是将WM_CHAR中的VK_代码与控件的绑定键进行比较并过滤掉它。
是否有一种方法可以从WM_CHAR消息中获取VK_代码?
我读到可以从Lparam的16-23位中获取扫描码。
但是我不确定如何:
- 从lparam中提取扫描码的值
- 正确地将扫描码转换为VK_