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


Сообщение WM_SYSKEYDOWN посылается окну с фокусом клавиатуры тогда, когда пользователь нажимает  клавишу F10 (которая активизирует строку меню) или удерживая нажатой клавишу ALT, затем нажимает другую клавишу. Это происходит также тогда, когда никакое окно в настоящее время не имеет фокуса клавиатуры; в этом случае сообщение WM_SYSKEYDOWN посылается активному окну. Окно, которое принимает сообщение, может различать между этими двумя ситуациями, проверяя контекстный код в параметре lParam.

Синтаксис

WM_SYSKEYDOWN
    WPARAM wParam
    LPARAM lParam;

Параметры

wParam

Определяет виртуальной код нажимаемой клавиши.

lParam

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

Значение

Описание

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

16-23

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

24

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

25-28

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

29

Определяет контекстный код. Значение является 1, если клавиша ALT является нажатой, в то время, когда нажимается символьная клавиша; оно является 0, если сообщение WM_SYSKEYDOWN посылается активному окну, потому что никакое окно не имеет фокуса клавиатуры.

30

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

31

Определяет переходное состояние. Для сообщения WM_SYSKEYDOWN это значение всегда 0.

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

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

Замечания

Функция DefWindowProc проверяет данную клавишу и генерирует сообщение WM_SYSCOMMAND, если клавиша является или TAB или ENTER.

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

Из-за функции автоповтора, до посылки сообщения WM_SYSKEYUP может быть отправлено больше чем одно сообщение WM_SYSKEYDOWN. Предыдущее состояние клавиши (бит 30) может быть использовано, чтобы установить, указывает ли сообщение WM_SYSKEYDOWN переход к первому нажатию или переход к повторному нажатию.

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

Это сообщение также отправляется всякий раз, когда пользователь нажимает клавишу F10 без клавиши ALT.

Смотри также

Обзор Ввод данных с клавиатуры, DefWindowProcTranslateAccelerator WM_SYSCOMMAND, WM_SYSKEYUP

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

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