Поделиться через


сообщение WM_DEADCHAR

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

#define WM_DEADCHAR                     0x0103

Параметры

wParam

Код символа, созданный мертвым ключом.

lParam

Счетчик повторов, код сканирования, флаг расширенного ключа, контекстный код, предыдущий флаг "ключ—состояние" и флаг состояния перехода, как показано в следующей таблице.

Bits Значение
0—15 Число повторов для текущего сообщения. Значение — это количество автоматических попыток нажатия клавиши в результате того, что пользователь удерживает клавишу. Если нажатие клавиши удерживается достаточно долго, отправляется несколько сообщений. Однако количество повторов не является накопительным.
16—23 Код сканирования. Значение зависит от изготовителя оборудования.
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 в разделе main клавиатуры, клавиши INS, DEL, HOME, END, PAGE UP, PAGE DOWN и стрелки в кластерах слева от цифровой клавиатуры, а также клавиши деления (/) и ВВОД на цифровой клавиатуре. Некоторые другие клавиатуры могут поддерживать бит расширенной клавиши в параметре lParam .

Требования

Требование Значение
Минимальная версия клиента
Windows 2000 Professional [только классические приложения]
Минимальная версия сервера
Windows 2000 Server [только классические приложения]
Заголовок
Winuser.h (включая Windows.h)

См. также раздел