【发布时间】:2011-12-02 17:41:43
【问题描述】:
我从 WM_CHAR 和 WM_KEYDOWN 消息中获取文本输入和按键输入
我想要做的是过滤掉与绑定启用您输入文本的控件的键具有相同 VK_ 代码的 WM_CHAR 消息。
EG:游戏使用~来开启控制台,按键绑定是通过VK_OEM3和WM_KEYDOWN完成的,但是输入到控制台的文本需要来自WM_CHAR的文本。
当 WM_KEYDOWN 首先发生时,控制台被激活,然后 ~ 的 WM_CHAR 被发送到我不想要的控制台缓冲区。
我认为防止这种情况的最佳方法是将 WM_CHAR 中的 VK_ 与控件的绑定键进行比较并将其过滤掉。
有没有办法从 WM_CHAR 消息中获取 VK_?
我了解到您可以从 Lparam 的第 16-23 位获取扫描码
但我不确定如何:
- 从 lparam 中提取扫描码的值
- 将扫描码正确翻译成 VK_
【问题讨论】: