92978b58

Флаги


Младшие 16 бит параметра mp1 сообщения WM_CHAR содержат флаги, отражающие состояние клавиш в момент генерации сообщения.

Для извлечения флагов из параметра mp1 удобно использовать макрокоманду SHORT1FROMMP :

nFs = SHORT1FROMMP (mp1);

Список отдельных флагов вместе с маской для проверки и кратким описанием мы привели ниже:



Флаг Маска Описание
KC_CHAR 0x0001 Поле кода символа содержит правильное значение
KC_VIRTUALKEY 0x0002 Поле виртуального кода клавиши содержит правильное значение
KC_SCANCODE 0x0004 Поле аппаратного скан-кода клавиши содержит правильное значение
KC_SHIFT 0x0008 Была нажата клавиша <Shift>
KC_CTRL 0x0010 Была нажата клавиша <Control>
KC_ALT 0x0020 Была нажата клавиша <Alt>
KC_KEYUP 0x0040 Сообщение было создано, когда пользователь отпустил нажатую ранее клавишу
KC_PREVDOWN 0x0080 Ранее эта клавиша находилась в нажатом состоянии (устанавливается при выполнении функции автоповтора для клавиши, которую держат в нажатом состоянии достаточно долгое время)
KC_LONEKEY 0x0100 Во время ввода комбинации клавиш отпущена та клавиша, которая была перед этим нажата
KC_DEADKEY 0x0200 Нажата клавиша для создания диактрических символов ("мертвая" клавиша)
KC_COMPOSITE 0x0400 Композитная клавиша, составленная с использованием диактрических символов
KC_INVALIDCOMP 0x0800 Неправильная композитная клавиша
KC_TOGGLE 0x1000 С помощью этого флага можно использвать любую клавишу как переключающую
KC_INVALIDCHAR 0x2000 Неправильный код клавиши
KC_DBCSRSRVD1 0x4000 Зарезервировано для двухсимвольных кодов клавиш
KC_DBCSRSRVD2 0x8000 Аналогично предыдущему



Содержание раздела