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


Сообщение WM_DEADCHAR

Синтаксис

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

Сообщение WM_DEADCHAR посылается окну с фокусом клавиатуры тогда, когда функцией TranslateMessage транслируется сообщение WM_KEYUP. WM_DEADCHAR определяет код буквы, сгенерированный мертвой клавишей. Мертвая клавиша - клавиша, которая генерирует символ, типа умлаута (две точки над буквой), который объединяется с другим символом, чтобы формировать составной символ. Например, символ O - умлаут (O) сгенерирован при помощи ввода с клавиатуры мертвой клавиши для символа умлаута, а затем ввода клавиши O.

Параметры
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, если клавиша нажимается.

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

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

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

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

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

 

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