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

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

Сообщение  WM_UNICHAR  эквивалентно сообщению WM_CHAR, но оно использует Unicode формат преобразования (UTF) - 32, принимая во внимание, что WM_CHAR использует UTF-16. Оно предназначено, чтобы отправлять или пересылать символы Unicode окнам ANSI, и оно может обрабатывать символы Unicode Supplementary Plane (Дополнительной плоскости Unicode).

Синтаксис

WM_UNICHAR
    WPARAM
wParam
    LPARAM
lParam;

Параметры

wParam

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

Если wParam - UNICODE_NOCHAR и приложение обрабатывает это сообщение, тогда возвращается значение ИСТИНА (TRUE). Функция DefWindowProc возвратит значение ЛОЖЬ (FALSE) (значение по умолчанию).

Если wParam - не UNICODE_NOCHAR, возвращается значение ЛОЖЬ (FALSE).  Функция DefWindowProc (Unicode) помещает  сообщение WM_CHAR  с теми же самыми параметрами, а функция DefWindowProc (ANSI) помещает или одно или два сообщения WM_CHAR  соответствующее символу (ам) ANSI.

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

Возвращаемые значения

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

Замечания

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

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

Смотри также

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

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

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