Обработка символьных сообщений
Оконная процедура принимает символьное сообщение тогда, когда функция TranslateMessage транслирует код виртуальной клавиши соответствующий клавише знака. Символьными сообщениями являются WM_CHAR, WM_DEADCHAR, WM_SYSCHAR и WM_SYSDEADCHAR. Обычно оконная процедура игнорирует все символьные сообщения кроме WM_CHAR. Функция TranslateMessage генерирует сообщение WM_CHAR тогда, когда пользователь нажимает какую-либо из следующих клавиш.
Когда оконная процедура принимает сообщение WM_CHAR, она должна проверить код буквы, который сопровождает сообщение, чтобы установить, как обрабатывать символ. Код буквы находится в параметре wParam сообщения.
Следующий пример показывает общую схему оконной процедуры, где типичная прикладная программа используется для приема и обработки символьных сообщений.
Демонстрационный пример
case WM_CHAR:
switch (wParam)
{
case 0x08:
// Обработка возврата на один символ (Backspace).
break;
case 0x0A:
// Обработка перевода строки.
break;
case 0x1B:
// Обработка Escape.
break;
case 0x09:
// Обработка Tab.
break;
case 0x0D:
// Обработка перевода каретки.
break;
default:
// Обработка показываемых символов.
break;
}
|