Отметки сообщений клавиш

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

Приложение может использовать следующие значения для обработки нажатия клавиши флаги.

Значение Значение
KF_ALTDOWN Управляет alt ключевой флаг, который указывается, если нажата клавиша alt.
KF_DLGMODE Управляет диалогового окна режим флаг, который указывает, является ли диалоговое окно активным.
KF_EXTENDED Управляет расширенного ключа флага.
KF_MENUMODE Управляет меню режим флаг, который указывает, является ли меню активного.
KF_REPEAT Управляет число повторений.
KF_UP Управляет переход государственный флаг.

Повторить граф

Вы можете проверить число повторений для определения того, представляет ли нажатие клавиши сообщение более чем одного нажатия клавиши. Система увеличивает счетчик когда клавиатуры генерирует сообщения, WM_KEYDOWN или WM_SYSKEYDOWN быстрее, чем приложение может обработать их. Это часто происходит, когда пользователь удерживает вниз ключа длиной достаточно, чтобы начать функцию автоматического повторного клавиатуры. Вместо того, чтобы заполнение очередь системных сообщений с полученный ключ вниз сообщений, система объединяет сообщений в один ключ вниз сообщение и увеличивает число повторений. Освобождение ключ не удается запустить функции автоматического повтора, так что число повторений для сообщений WM_KEYUP и WM_SYSKEYUP всегда имеет значение 1.

Проверка кода

Код сканирования — значение, создающий аппаратной клавиатуры, когда пользователь нажимает клавишу. Это аппаратно зависимые значение, идентифицирующее клавиша нажата, а не на символ, представленный ключом. Приложение обычно игнорирует сканирования кодов. Вместо этого он использует аппаратно независимые виртуальных клавиш коды для интерпретации сообщений клавиш.

Флаг продлен ключ

Продлен ключ флаг указывает ли нажатие клавиши сообщение происходит от одной из дополнительных ключей на расширенной клавиатуры. Дополнительные клавиши состоят из клавиш alt и ctrl на правой стороне клавиатуры; ins, del, дома, конец, page up, page down и клавиш со стрелками в кластерах слева от цифровой клавиатуры; Клавиша num lock; перерыв (ctrl + пауза) ключ; Печать scrn ключ; и деления (/) и введите ключи в цифровой клавиатуры. Если ключ является расширенный ключ установлен флаг продлен ключ.

Код контекста

Код контекста указывает, было ли клавиша alt вниз, когда было сгенерировано сообщение клавиатуры. Код является 1, если клавиша alt была вниз и 0, если он был вверх.

Предыдущий ключ государственный флаг

Предыдущий ключ государственный флаг указывает, ранее было ли ключ, который сформировал сообщение клавиши вверх или вниз. Это 1, если ключ был ранее вниз и 0, если ключ был ранее вверх. Можно использовать этот флаг для определения клавиш сообщения, генерируемые функции автоматического повторного клавиатуры. Этот флаг имеет значение 1 для WM_KEYDOWN и WM_SYSKEYDOWN клавиши сообщения, генерируемые функции автоматического повтора. Он всегда имеет значение 0 для WM_KEYUP и WM_SYSKEYUP сообщений.

Переход государственный флаг

Переход государственный флаг указывает ли нажатие клавиши или выпуска ключа создать сообщение нажатия клавиш. Этот флаг всегда имеет значение 0 для WM_KEYDOWN и WM_SYSKEYDOWN сообщений; Он всегда имеет значение 1 для WM_KEYUP и WM_SYSKEYUP сообщений.

Index