WM_SYSKEYDOWN |
Scroll |
Это событие посылается в окно с клавиатурным фокусом, когда клавиша нажимается при одновременно нажатой <Alt>. Также оно посылается, когда ни одно из окон не имеет клавиатурного фокуса; в этом случае WM_SYSKEYDOWN посылается в активное окно. Окно, которое принимает событие, может различить эти варианты проверкой разряда 29 (context code) параметра lKeyData.
Синтаксис:
WM_SYSKEYDOWN nVirtKey = (int) wParam; KeyData = lParam;
Параметры:
wParam |
- код виртуальной клавиши, |
lParamLo |
- количество повторений кода клавиши за время удержания ее в нажатом состоянии, |
IParamHi |
биты 0-7: scan-код клавиши, зависящий от OEM; бит 8: 1, если клавиша относится к расширенным, бит 13: 1, если при нажатии клавиши была нажата <Alt>, бит 14: 1, если клавиша была нажата до возникновения события, бит 15: 1, если после события клавиша отпущена, 0, если после события клавиша остается нажатой. |
Возвращаемое значение:
Не используется.
Умолчательное действие:
Функция DEFWINDOWPROC посылает событие WM_SYSCOMMAND в окно верхнего уровня, если F10 или <Alt> была отпущена. Значение параметра wParam становится равным SC_KEYMENU.
Примечание:
1. Приложение должно вернуть 0, если оно обрабатывает это событие.
2. Для этого события бит 15 в lParamHi будет нулевым.
3. Если бит 13 IParamHi (context code) параметра flags =0, это событие может проследовать для обработки функцией TRANSLATEACCELERATOR, которая обработает его как событие нажатия стандартной клавиши, вместо системной. Это позволяет использовать горячие клавиши в активном окне, даже если это окно не имеет клавиатурного фокуса.
4. Благодаря автоматическому повторению кода клавиши при удержанию ее нажатой, до появления события WM_KEYUP может выдаваться несколько событий WM_KEYDOWN. Значение разряда 30 параметра flags позволяет определить, было ли событие WM_KEYDOWN первым или или является повторным во время удержания клавиши нажатой.
5. Для расширенных 101 и 102 клавишных клавиатур расширенными клавишами являются следующие:
•правый <ALT> и <CTRL> на основной клавиатуре,
•<INS>, <DEL>, <HOME>, <END>, <PAGE UP>, <PAGE DOWN> и клавиши со cтрелками в группах слева от дополнительной цифровой клавиатуры,
•</> и <ENTER> на дополнительной цифровой клавиатуре.
Другие клавиатуры могут поддерживать бит расширенной клавиатуры при помощи параметра lParam.
6. Это событие также генерируется, если нажимается <F10> без нажатой <Alt>.