Шаг 290 - CWnd::OnSysKeyUp

afx_msg void OnSysKeyUp( UINT nChar, UINT nRepCnt, UINT nFlags );

Параметры
nChar
Определяет код нажимаемой виртуальной клавиши
nRepCnt
Определяет повторный счет.
nFlags
Определяет скэн-код, код перехода клавиши, предыдущее состояние клавиши, и контекстный код, как показано в следующем списке:

Для обращений OnSysKeyUp бит перехода клавиши (бит 15) 1. Бит контекстного кода (бит 13) 1 если клавиша нажата - в то время как клавиша нажата, 0 если сообщение послано активному окну, потому что никакое окно не имеет фокус ввода.

Замечания
Если объект CWnd имеет фокус ввода, OnSysKeyUp функция вызваться рамкой когда пользователь отпускает клавишу, которая была нажата, в то время как клавиша ALT была удержана в нажатом состоянии. Если никакое окно в настоящее время не имеет фокус ввода OnSysKeyUp функция активного окна вызвана. Объект CWnd который получает обращение может различать между этими двумя контекстами проверяя контекстный код в nFlags.
Когда контекстный код 0, WM_SYSKEYUP сообщение, полученное OnSysKeyUp может быть передано к функции TranslateAccelerator Windows, которая обработает его как если бы это было нормальное сообщение клавиши вместо сообщения клавиши системы. Это позволяет акселератору клавиши использоваться с активным окном, даже если активное окно не имеет фокуса ввода.
Для IBM расширенных 101 и 102 клавишных клавиатур, расширенные клавиши - правый ALT и CTRL на основном разделе клавиатуры. INS, DEL, HOME, END, PAGE UP, PAGE DOWN и клавиши курсора в кластерах налево от цифровой клавиатуры. Наклонная черта вправо (/) и ENTER в цифровой клавиатуре. Некоторые другие клавиатуры могут поддерживать бит расширяемой клавиши в nFlags.
Для не-USA Расширенной клавиатуры с 102 клавишами, правая клавиша ALT обработана как CTRL + комбинация клавиш ALT. Следующее показывает последовательности сообщений и обращений в результате, когда пользователь нажимает и отпускает эту клавишу:

1. WM_KEYDOWN VK_CONTROL 
2. WM_KEYDOWN VK_MENU 
3. WM_KEYUP VK_CONTROL 
4. WM_SYSKEYUP VK_MENU 

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


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 02.01.2002