Несистемные символьные сообщения
Оконная процедура может принять следующие символьные сообщения: WM_CHAR, WM_DEADCHAR, WM_SYSCHAR, WM_SYSDEADCHAR и WM_UNICHAR. Функция TranslateMessage генерирует сообщение WM_CHAR или WM_DEADCHAR тогда, когда она обрабатывает сообщение WM_KEYDOWN. Точно так же она генерирует сообщение WM_SYSCHAR или WM_SYSDEADCHAR тогда, когда обрабатывает сообщение WM_SYSKEYDOWN.
Прикладная программа, которая обрабатывает ввод информации с клавиатуры обычно, игнорирует все, кроме сообщений WM_CHAR и WM_UNICHAR, посылая любые другие сообщения функции DefWindowProc.
Обратите внимание! на то, что WM_CHAR использует 16-битовый формат преобразования Уникода (UTF), в то время как сообщение WM_UNICHAR использует формат UTF-32.Система использует сообщения WM_SYSCHAR и WM_SYSDEADCHAR, чтобы осуществлять мнемонику меню. |
Параметр wParam всех символьных сообщений содержит код знака на клавише, которая была нажата. Значение кода знака зависит от класса окна, принимающего сообщение. Если функция RegisterClass была использована, чтобы зарегистрировать класс окна в версии Unicode, система предоставляет символы Unicode всем окнам этого класса. И напротив, система предоставляет коды знаков ASCII из набора символов Windows. Для получения дополнительной информации об Уникоде, см. Уникод и наборы символов.
Содержание параметра lParam символьного сообщения идентично содержанию параметра lParam сообщения о нажатии клавиши, которое было оттранслировано, чтобы произвести символьное сообщение. За информацией о содержании параметра lParam, обратитесь к статье Флажки сообщения о нажатии клавиши .