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


Сообщение 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

Смотри также

Обзор Ввод данных с клавиатуры, DefWindowProcTranslateAcceleratorWM_SYSCOMMANDWM_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

Нет

Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz