Win32 API. Функции и сообщения ввода информации с клавиатуры
Страница 33. Сообщение WM_CHAR


Сообщение WM_CHAR

Сообщение WM_CHAR посылается окну с фокусом клавиатуры тогда, когда функцией TranslateMessage транслируется сообщение WM_KEYDOWN. WM_CHAR содержит код буквы клавиши, которая была нажата.

Синтаксис

WM_CHAR
chCharCode = (TCHAR) wParam;// код буквы
lKeyData = lParam;// данные на клавишу

Параметры
chCharCode
Значение wParam. Определяет код буквы клавиши.
lKeyData
Значение lParam. Определяет счет повторений, скэн-код, флажок дополнительной клавиши, контекстный код, флажок предыдущего состояния клавиши и флажок переходного состояния, как показано в следующем списке:

  • 0-15 - Определяет счет повторений. Значение равно числу повторений нажатия клавиши в результате того, что пользователь удерживает клавишу нажатой.
  • 16-23 - Определяет скэн-код. Значение зависит от фирмы - изготовителя комплектного оборудования (OEM).
  • 24 - Определяет, является ли клавиша дополнительной клавишей, типа правосторонних клавиш ALT и CTRL, которые появляются на усовершенствованной 101- или 102-клавишной клавиатуре. Значение равно 1, если это дополнительная клавиша; иначе, оно равно 0.
  • 25-28 - Зарезервировано; не используется.
  • 29 - Определяет контекстный код. Значение рано 1, если клавиша ALT удерживается, в то время как клавиша нажата; иначе, значение равно 0.
  • 30 - Определяет предыдущее состояние клавиши. Значение равно 1, если клавиша была нажата перед посылкой сообщения или оно равно 0, если клавиша была не нажата.
  • 31 - Определяет переходное состояние. Значение равно 1, если клавиша отпускается или оно равно 0, если клавиша нажимается.

Возвращаемые значения
Прикладная программа должна возвратить нуль, если она обрабатывает это сообщение.

Замечания
Поскольку не имеется обязательного соответствия один к одному между нажатыми клавишами и сгенерированными символьными сообщениями, информация в старшем слове параметра lKeyData вообще-то бесполезна для прикладных программ. Информация в старшем слове применяется только к самому последнему сообщению WM_KEYDOWN, которое предшествует регистрации сообщения WM_CHAR.
Для усовершенствованных 101- и 102-клавишных клавиатур, дополнительными клавишами являются правая ALT и правая CTRLINS, DEL, HOME, END, PAGE UP, PAGE DOWN и клавиши курсора в группах слева от цифровой клавиатуры; делитель (/) и клавиши ENTER в цифровой клавиатуре. Некоторые другие клавиатуры могут поддерживать бит дополнительной клавиши в параметре lKeyData.

Смотри также
TranslateMessage, WM_KEYDOWN

Размещение и совместимость WM_CHAR

Windows NTДа 
Win95Да
Win32sДа
Импортируемая библиотека-
Заголовочный файлwinuser.h
UnicodeНет
Замечания по платформеНе имеется

 
« Предыдущая статья   Следующая статья »