Сообщение WM_KEYDOWN посылается окну с фокусом клавиатуры тогда, когда нажата несистемная клавиша. Несистемная клавиша является клавишей, которая нажимается, когда клавиша ALT не нажата.
Синтаксис
WM_KEYDOWN nVirtKey = (int) wParam; // код виртуальной клавиши lKeyData = lParam; // данные на клавишу
Параметры
nVirtKey
Значение wParam. Определяет код виртуальной клавиши для несистемной клавиши.
lKeyData
Значение lParam. Определяет счет повторений, скэн-код, флажок дополнительной клавиши, контекстный код, флажок предыдущего состояния клавиши и флажок переходного состояния, как показано в следующем списке:
Возвращаемые значения
Прикладная программа должна возвратить нуль, если она обрабатывает это сообщение.
Действие по умолчанию
Если нажата клавиша F10, функция DefWindowProc устанавливает внутренний флажок. Когда DefWindowProc принимает сообщение WM_KEYUP, функция проверяет, установлен ли внутренний флажок и, если это так, посылает сообщение WM_SYSCOMMAND окну верхнего уровня. Параметр wParam сообщения устанавливается в SC_KEYMENU.
Замечания
Благодаря функции автоповтора, до посылки сообщения WM_KEYUP может быть послано больше чем одно сообщение WM_KEYDOWN. Предыдущее состояние клавиши (бит 30) может быть использовано, чтобы установить, указывает ли сообщение WM_KEYDOWN первое нажатие или повторное нажатие.
Для усовершенствованных 101- и 102-клавишных клавиатур, дополнительными клавишами являются правая ALT и правая CTRL в основной части клавиатуры; INS, DEL, HOME, END, PAGE UP, PAGE DOWN и клавиши курсора в группах слева от цифровой клавиатуры; и делитель (/) и клавиши ENTER в цифровой клавиатуре. Некоторые другие клавиатуры могут поддерживать бит дополнительной клавиши в параметре lKeyData.
Смотри также
DefWindowProc, WM_CHAR, WM_KEYUP, WM_SYSCOMMAND
Размещение и совместимость WM_KEYDOWN
Windows NT Да Win95 Да Win32s Да Импортируемая библиотека - Заголовочный файл winuser.h Unicode Нет Замечания по платформе Не имеется