Please enable JavaScript to view this site.

» Нет разделов более высокого уровня «

WM_KEYDOWN

Scroll

Событие WM_KEYDOWN посылается в окно с клавиатурным фокусом, если была нажата несистемная клавиша.

Синтаксис:

WM_KEYDOWN nVirtKey = (int) wParam; KeyData = lParam;

Параметры:

wParam

- код виртуальной клавиши,

lParamLo

- количество повторений кода клавиши за время удержания ее в нажатом состоянии,

LParamHi

биты 0-7: scan-код клавиши, зависящий от OEM;

бит 8: 1, если клавиша относится к расширенным,

бит 13: 1, если при нажатии клавиши была нажата <Alt>,

бит 14: 1, если клавиша была нажата до возникновения события,

бит 15: 1, если после события клавиша отпущена,

0, если после события клавиша остается нажатой.

Возвращаемое значение:

Не используется.

Умолчательное действие:

Если нажата клавиша <F10>, функция DEFWINDOWPROC устанавливает внутренний флаг. Когда DEFWINDOWPROC принимает событие WM_KEYUP, она проверяет, установлен ли внутренний флаг, и если это так, посылает событие WM_SYSCOMMAND в окно верхнего уровня. Значение параметра wParam становится равным SC_KEYMENU.

Примечание:

1. Приложение должно вернуть 0, если оно обрабатывает это событие.

2. Для этого события биты 13 и 15 в lParamHi будут нулевыми.

3. Если ни одно из окон не имеет клавиатурного фокуса, то вместо событий WM_KEYDOWN, WM_CHAR и WM_KEYUP посылаются события WM_SYSKEYDOWN, WM_SYSCHAR и WM_SYSKEYUP.

4. Благодаря автоматическому повторению кода клавиши при удержанию ее нажатой, до появления события WM_KEYUP может выдаваться несколько событий WM_KEYDOWN. Значение разряда 30 параметра flags позволяет определить, было ли событие WM_KEYDOWN первым или или является повторным во время удержания клавиши нажатой.

5. Для расширенных 101 и 102 клавишных клавиатур расширенными клавишами являются следующие:

правый <ALT> and <CTRL> на основной клавиатуре,

<INS>, <DEL>, <HOME>, <END>, <PAGE UP>, <PAGE DOWN> и клавиши со cтрелками в группах слева от дополнительной цифровой клавиатуры,

</> и <ENTER> на дополнительной цифровой клавиатуре.

Другие клавиатуры могут поддерживать бит расширенной клавиатуры при помощи параметра lParam.

См. также:

WM_DEADCHAR, WM_SYSCHAR и WM_SYSDEADCHAR.

© ООО «АСКОН-Системы проектирования», 2024. Все права защищены. | Единая телефонная линия: 8-800-700-00-78