Сообщение WM_KEYDOWN ставится в очередь окна с фокусом клавиатуры тогда, когда нажата несистемная клавиша. Несистемная клавиша является клавишей, которая нажимается, когда клавиша ALT не нажата.
Синтаксис
|
Параметры
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 |
Нет |
|
Замечания по платформе |
Не имеется |