Страница 45 из 45
Сообщение WM_SYSKEYUP Сообщение WM_SYSKEYUP посылается окну с фокусом клавиатуры тогда, когда пользователь отпускает клавишу, которая была нажата, в то время когда удерживалась нажатой клавиша ALT. Это происходит также тогда, когда никакое окно в настоящее время не имеет фокуса клавиатуры; в этом случае, сообщение WM_SYSKEYUP отправляется активному окну. Окно, которое принимает сообщение, может делать различие между этими двумя ситуациями, проверяя контекстный код в параметре lKeyData. Синтаксис WM_SYSKEYUP nVirtKey = (int) wParam;// код виртуальной клавиши lKeyData = lParam;// данные на клавишу Параметры nVirtKey Значение wParam. Определяет код виртуальной клавиши, которая была отпущена. lKeyData Значение 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.
Возвращаемые значения Прикладная программа должна возвратить нуль, если она обрабатывает это сообщение. Действие по умолчанию Если клавиша F10 или ALT была отпущена, функция DefWindowProc отправляет сообщение WM_SYSCOMMAND окну верхнего уровня. Параметр wParam сообщения устанавливается в SC_KEYMENU. Замечания Когда контекстный код нулевой, сообщение может быть послано в функцию TranslateAccelerator, которая обработает его, как если бы оно было нормальное клавишное сообщение вместо системного сообщения символьной клавиши. Это позволяет клавишам - ускорителям быть использованными с активным окном, даже если активное окно не имеет фокуса клавиатуры. Для усовершенствованных 101- и 102-клавишных клавиатур, дополнительными клавишами являются - правая ALT и правая CTRL в основной части клавиатуры; INS, DEL, HOME, END, PAGE UP, PAGE DOWN и клавиши курсора в группах слева от цифровой клавиатуры; делитель (/) и клавиши ENTER в цифровой клавиатуре. Другие клавиатуры могут поддерживать бит дополнительной клавиши в параметре lKeyData. Для не американских усовершенствованных 102-клавишных клавиатур, правая клавиша ALT обрабатывается как клавиша CTRL + ALT. Следующая таблица показывает последовательность сообщений, которые появляются в результате того, когда пользователь нажимает и отпускает эту клавишу: СообщениеКод виртуальной клавиши WM_KEYDOWNVK_CONTROL WM_KEYDOWNVK_MENU WM_KEYUPVK_CONTROL WM_SYSKEYUPVK_MENU
Смотри также: DefWindowProc, TranslateAccelerator, WM_SYSCOMMAND, WM_SYSKEYDOWN Размещение и совместимость WM_SYSKEYUP Windows NTДа Win95Да Win32sДа Импортируемая библиотека- Заголовочный файлwinuser.h UnicodeНет Замечания по платформеНе имеется
|