Я получаю ввод текста и нажатия клавиш из сообщений WM_CHAR и WM_KEYDOWN
Я хочу отфильтровать сообщения WM_CHAR, имеющие тот же код VK_, что и ключ, который должен включить элемент управления, которыйВы вводите текст.
EG: игра использует ~ для включения консоли, привязка клавиш выполняется через VK_OEM3 и WM_KEYDOWN, но для ввода текста в консоль требуется текст из WM_CHAR.
Поскольку происходит WM_KEYDOWNсначала консоль активируется, затем WM_CHAR ~ отправляется в буфер консоли, который мне не нужен.
Я решил, что лучший способ предотвратить это - сравнить VK_ из WM_CHAR с привязаннымключ для элемента управления и отфильтруйте его.
Есть ли способ получить VK_ из сообщения WM_CHAR?
Я прочитал, что вы можете получить скан-код из Lparam в битах 16-23
Но я не уверен, как:
- Извлечь значение скан-кода из lparam
- Перевести код сканирования в VK_ правильно