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


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

Синтаксис

WM_CHAR
    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_CHAR  использует формат преобразования Уникода (UTF)-16.

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

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

Windows XP: Cообщение WM_UNICHAR  такое же самое, поскольку WM_CHAR, кроме этого использует UTF-32. Оно разработано, чтобы отправлять или помещать в очередь символы  Unicode  окнам ANSI и оно может обрабатывать символы Unicode Supplementary Plane (дополнительной плоскости Уникода).

Смотри также

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

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

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