Мертвые символов сообщений

Некоторые клавиатуры не Английский содержат символ ключи, которые не ожидается получения символов сами по себе. Вместо этого они используются для добавления диакритические символов, получают путем последующего нажатия клавиш. Эти ключи называются мертвых ключей. Циркумфлекс клавиши на клавиатуре для Германии является примером мертвых ключа. Чтобы ввести символ, состоящий из «o» с циркумфлекс, немецкий пользователя ввести циркумфлекс ключ, затем клавишу «o». Окно с фокусом клавиатуры будет получить следующую последовательность сообщений:

WM_KEYDOWN
WM_DEADCHAR
WM_KEYUP
WM_KEYDOWN
WM_CHAR
WM_KEYUP

TranslateMessage генерирует сообщение WM_DEADCHAR , когда он обрабатывает сообщение WM_KEYDOWN от мертвых ключа. Хотя параметр wParam сообщения WM_DEADCHAR содержит код символа диакритический знак для мертвых ключа, приложение обычно игнорирует это сообщение. Вместо этого он обрабатывает сообщение WM_CHAR , генерируемые Последующие нажатия клавиш. Параметр wParam сообщения WM_CHAR содержит код знака письма с диакритическим. Если последующие нажатия клавиш создает символ, который не может использоваться вместе с диакритическим, система генерирует два сообщения WM_CHAR. Параметр wParam первого содержит код символа диакритический знак; параметр wParam второй содержит код символа последующих символов ключа.

Функция TranslateMessage создает сообщение WM_SYSDEADCHAR , при обработке WM_SYSKEYDOWN сообщение от системы мертвых (клавиша мертвых, нажата в сочетании с клавишей alt). Приложение обычно игнорирует сообщение WM_SYSDEADCHAR.

Index