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


Сообщение WM_KEYDOWN ставится в очередь окна с фокусом клавиатуры тогда, когда нажата несистемная клавиша. Несистемная клавиша является клавишей, которая нажимается, когда клавиша ALT не нажата.

Синтаксис

WM_KEYDOWN
    WPARAM wParam
    LPARAM lParam;

Параметры

wParam

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

lParam

Определяет счет повторений, скэн-код, флажок дополнительной клавиши, контекстный код, флажок предыдущего состояния клавиши и флажок переходного состояния, как показано в следующей таблице:

 

Значение

Описание

0-15

Определяет счет повторений текущего сообщения. Значение равно числу автоповтора нажатий клавиши в результате того, что пользователь удерживает клавишу нажатой. Если нажатие клавиши удерживается достаточно долго, отправляются многочисленные сообщения . Однако, счет повторений не накапливается.

16-23

Определяет скэн-код. Значение зависит от фирмы - изготовителя комплектного оборудования (OEM).

24

Определяет, является ли клавиша дополнительной клавишей, типа правосторонних клавиш ALT и CTRL, которые появляются на усовершенствованной 101- или 102-клавишной клавиатуре. Значение равно 1, если это дополнительная клавиша; иначе, оно равно 0.

25-28

Зарезервировано; не используется.

29

Определяет контекстный код. Это значение - всегда 0 для сообщения WM_KEYDOWN.

30

Определяет предыдущее состояние клавиши. Это значение равно 1 в том случае, если клавиша была нажата перед отправкой сообщения или оно равно 0, если клавиша была не нажата.

31

Определяет переходное состояние. Это значение - всегда 0 для сообщения WM_KEYDOWN.

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

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

Замечания

Если нажата клавиша F10 , функция DefWindowProc устанавливает внутренний флажок. Когда DefWindowProc получает сообщение WM_KEYUP, функция проверяет, установлен ли внутренний флажок и, если это так, отправляет сообщение WM_SYSCOMMAND  окну верхнего уровня. Параметр сообщения WM_SYSCOMMAND  устанавливается в SC_KEYMENU.

Благодаря функции автоповтора, до посылки сообщения WM_KEYUP может быть передано больше чем одно сообщение WM_KEYDOWN. Предыдущее состояние клавиши (бит 30) может быть использовано, чтобы установить, указывает ли сообщение WM_KEYDOWN первое нажатие или повторное нажатие.

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

Windows 2000/XP: Приложения должны передавать  wParam в TranslateMessage, не изменяя его вообще.

Смотри также

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

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

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