Сообщение WM_SYSKEYUP посылается окну с фокусом клавиатуры тогда, когда пользователь отпускает клавишу, которая была нажата, пока клавиша ALT удерживалась нажатой. Это происходит также тогда, когда текущее окно имеет фокус клавиатуры; в этом случае сообщение WM_SYSKEYUP отправляется активному окну. Окно, которое принимает сообщение, может различать между этими двумя ситуациями, проверяя контекстный код в параметре lParam.
Окно получает это сообщение через свою функцию WindowProc.
Синтаксис
WM_SYSKEYUP WPARAM wParam LPARAM lParam; |
Параметры
wParam
Определяет виртуальной код опускаемой клавиши.lParam
Определяет счет повторений, скэн-код, флажок дополнительной клавиши, контекстный код, флажок предыдущего состояния клавиши и флажок переходного состояния, как показано в следующей таблице:
Значение
Описание
0-15 Определяет счет повторений текущего сообщения. Значение равно числу автоповтора нажатий клавиши в результате того, что пользователь удерживает клавишу нажатой. Для сообщения WM_SYSKEYUP счет повторений всегда равен единице. 16-23
Определяет скэн-код. Значение зависит от фирмы - изготовителя комплектного оборудования (OEM).
24
Определяет, является ли клавиша дополнительной клавишей, типа правосторонних клавиш ALT и CTRL, которые появляются на усовершенствованной 101- или 102-клавишной клавиатуре. Значение равно 1, если это дополнительная клавиша; иначе, оно равно 0.
25-28
Зарезервировано; не используется.
29
Определяет контекстный код. Значение является 1, если клавиша
ALT является нажатой, в то время, когда отпускается символьная клавиша; оно является 0, если сообщение WM_SYSKEYDOWN пересылается активному окну, потому что никакое окно не имеет фокуса клавиатуры.30
Определяет предыдущее состояние клавиши. Для сообщения WM_SYSKEYUP значение всегда равно 1.
31
Определяет переходное состояние. Для сообщения WM_SYSKEYUP это значение всегда 1.
Возвращаемые значения
Прикладная программа должна возвратить нуль, если она обрабатывает это сообщение.
ЗамечанияФункция DefWindowProc отправляет сообщение WM_SYSCOMMAND окну верхнего уровня, если клавиша F10 или ALT, были отпущены. Параметр wParam сообщения устанавливается в значение SC_KEYMENU.
Когда контекстный код равен нулю, сообщение может передаваться в функцию TranslateAccelerator, которая обработает его, как если бы это было обычное клавишное сообщение вместо сообщения клавиши символа. Это дает возможность клавишам ускорения использоваться активным окном, даже если активное окно не имеет фокуса клавиатуры.
Для усовершенствованных 101- и 102-клавишных клавиатур, дополнительными клавишами являются - правая ALT и правая CTRL в основной части клавиатуры; INS, DEL, HOME, END, PAGE UP, PAGE DOWN и клавиши курсора в группах слева от цифровой клавиатуры; делитель (/) и клавиши ENTER в цифровой клавиатуре. Другие клавиатуры могут поддерживать бит дополнительной клавиши в параметре lParam.
Для не США усовершенствованные 102-клавишные клавиатуры, правая клавиша ALT обрабатывается как клавиша CTRL+ALT. Нижеследующая таблица показывает порядок следования сообщений, как результат, когда пользователь нажимает и отпускает эту клавишу.
Сообщение Код виртуальной клавиши WM_KEYDOWN VK_CONTROL WM_KEYDOWN VK_MENU WM_KEYUP VK_CONTROL WM_SYSKEYUP VK_MENU
Смотри также
Обзор Ввод данных с клавиатуры, DefWindowProc, TranslateAccelerator, WM_SYSCOMMAND, WM_SYSKEYDOWN
Размещение и совместимость WM_SYSKEYUP |
|
Windows. NET Server |
Да |
Windows XP |
Да |
Windows 2000 |
Да |
Windows NT |
Да версии 3.1 и выше |
Windows Me |
Да |
Windows 98 |
Да |
Windows 95 |
Да |
Используемая библиотека |
Нет |
Заголовочный файл |
|
- объявлено в |
Winuser.h |
- включено в |
Windows.h |
Unicode |
Нет |
Замечания по платформе |
Не имеется |