Сообщение WM_SYSCHAR посылается в очередь окна с фокусом клавиатуры, когда сообщение WM_SYSKEYDOWN оттранслировано функцией TranslateMessage. Оно устанавливает символьный код системной символьной клавиши - то есть символьной клавиши, которая обрабатывается в то время, когда клавиша ALT находится в нажатом состоянии.
WM_SYSCHAR WPARAM wParam LPARAM lParam; |
wParam
Устанавливает символьный код клавиши системного меню окна.lParam
Устанавливает счет повторов, код опроса клавиатуры (скэн-код), флажок дополнительной клавиши, контекстный код, флажок предыдущего состояния клавиши и флажок переходного состояния, как показано в следующей ниже таблице.
Биты |
Предназначение |
0-15 | Устанавливает счет повторов текущего сообщения. Это значение является количеством нажатий клавиши, которое было создано автоповтором в результате удержания пользователем клавиши в нажатом состоянии. Если нажатие клавиши осуществляется достаточно долго, в процедуру отправляются повторяющиеся сообщения . Однако, счет повторов не накапливается. |
16-23 | Устанавливает код опроса клавиатуры (скэн-код). Значение зависит от изготовителя комплексного оборудования (OEM). |
24 | Устанавливает, является ли клавиша дополнительной клавишей, такой как правая клавиша ALT и клавиши CTRL, которые появляются на улучшенной клавиатуре со 101-или со 102 клавишами. Значение - 1 если это - дополнительная клавиша; в противном случае, это - 0. |
25-28 | Зарезервированы; не используются. |
29 | Устанавливает контекстный код. Значение - 1, если клавиша ALT удерживается нажатой, в то время, когда клавиша нажимается; в противном случае, значение равно 0. |
30 | Устанавливает предыдущее состояние клавиши. Значение - 1, если клавиша находилась в нажатом состоянии перед отправкой в процедуру сообщения, или оно - 0, если клавиша находилась в отпущенном состоянии. |
31 | Устанавливает состояние перехода. Значение - 1, если клавиша отпускается, или это - 0, если клавиша нажимается. |
Приложение должно возвратить нуль, если обрабатывает это сообщение.
Когда контекстный код равен нулю, сообщение может быть передано в функцию TranslateAccelerator, которая обработает его, как если бы это было стандартное клавишное сообщение вместо системного сообщения символьной клавиши. Это позволяет клавишам - ускорителям быть использованными активным окном, даже если активное окно не имеет фокуса клавиатуры.
Для усовершенствованных 101- и 102-клавишных клавиатур, дополнительными клавишами являются клавиши ALT и CTRL справа на главном разделе клавиатуры; INS, DEL, HOME, END, PAGE UP, PAGE DOWN и клавиши курсора в группах слева от цифровой клавиатуры; клавиша PRINT SCRN; клавиша BREAK; клавиша NUMLOCK; а также клавиши делитель (/) и ENTER в цифровой клавиатуре. Другие клавиатуры могут поддерживать бит дополнительных клавиш в параметре lParam.
Обзор Ускорители клавиатуры, Уведомления, используемые ускорителями клавиатуры, TranslateAccelerator, TranslateMessage, WM_SYSKEYDOWN
Размещение и совместимость WM_SYSCHAR | ||
К | Windows XP | Да |
л | Windows 2000 Professional | Да |
и | Windows NT Workstation | Да версии 3.1 и выше |
е | Windows Me | Да |
н | Windows 98 | Да |
т | Windows 95 | Да |
С | Windows Server 2003 | Да |
е | Windows 2000 Server | Да |
р | Windows NT Server | Да версии 3.1 и выше |
в | ||
е | ||
р | ||
Используемая библиотека | - | |
Используемая DLL | - | |
Заголовочный файл | ||
- объявлено в | Winuser.h | |
- включено в | Windows.h | |
Unicode | Нет | |
Замечания по платформе | Не имеется |