Преобразование VK_CODE в отображаемую строку - PullRequest
1 голос
/ 23 декабря 2010

При написании приложения для Windows в документации говорится, что некоторые VK_CODE являются отображаемыми символами, например VK_OEM1 - это «o с умляутом». Как перейти из WPARAM не-ASCII-символов в отображаемую строку? Я использую UTF-16.

Ответы [ 2 ]

3 голосов
/ 23 декабря 2010

Возможно, вы ищете функцию GetKeyNameText

Возвращает строку, которая представляет имя ключа.

2 голосов
/ 23 декабря 2010

как VK_OEM1 это "o с умляутом".

Возможно на вашей машине.Не по моему, это ';'или ':', в зависимости от состояния клавиши Shift.Это виртуальные коды клавиш.Те, которые представляют печатную клавишу, преобразуются в символ с помощью ToUnicodeEx (), функции, которая принимает раскладку клавиатуры.И, конечно же, у вас есть нетипизирующие клавиши, которые вообще не выдают символов, например VK_F1 или VK_NUMLOCK.Это становится намного сложнее, когда в раскладке клавиатуры есть мертвые клавиши, которые вы используете, чтобы получить диакритический знак поверх символа.Поэтому для этой функции также требуется состояние клавиатуры.

Избегайте этого, как чумы, WM_CHAR - ваш друг.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...