Уведомление WM_DEADCHAR 


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

Синтаксис

WM_DEADCHAR
    WPARAM wParam
    LPARAM lParam;

Параметры

wParam

Определяет код символа созданного мертвой клавишей.

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  обычно используется приложениями, чтобы дать пользователю обратную связь о каждом нажатии клавиши. Например, приложение может показать на экране диакритический знак в текущей позиции символа, не перемещая каретку.

Поскольку не имеется обязательного соответствия один к одному между нажатыми клавишами и сгенерированными символьными сообщениями, информация в старшем слове параметра lParam вообще-то бесполезна для прикладных программ. Информация в старшем слове применяется только к самому последнему сообщению WM_KEYDOWN, которое предшествует постановке в очередь сообщения  WM_DEADCHAR.

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

Смотри также

Обзор Ввод данных с клавиатуры, TranslateMessage, WM_KEYDOWN, WM_KEYUPWM_SYSDEADCHAR

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

Windows. NET Server

Да

Windows XP

Да

Windows 2000

Да

Windows NT

Да версии 3.1 и выше

Windows Me

Да

Windows 98

Да

Windows 95

Да

Используемая библиотека

Нет

Заголовочный файл

 

- объявлено в

Winuser.h

- включено в

Windows.h

Unicode

Нет

Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz