Функция TranslateMessage (winuser.h)
Преобразует сообщения с виртуальным ключом в символьные сообщения. Символьные сообщения помещаются в очередь сообщений вызывающего потока, чтобы их можно было прочитать при следующем вызове функции GetMessage или PeekMessage .
Синтаксис
BOOL TranslateMessage(
[in] const MSG *lpMsg
);
Параметры
[in] lpMsg
Тип: const MSG*
Указатель на структуру MSG , содержащую сведения о сообщении, полученные из очереди сообщений вызывающего потока с помощью функции GetMessage или PeekMessage .
Возвращаемое значение
Тип: BOOL
Если сообщение переведено (то есть символьное сообщение помещается в очередь сообщений потока), возвращаемое значение будет ненулевым.
Если сообщение имеет значение WM_KEYDOWN, WM_KEYUP, WM_SYSKEYDOWN или WM_SYSKEYUP, возвращаемое значение будет ненулевым, независимо от перевода.
Если сообщение не переведено (то есть символьное сообщение не помещается в очередь сообщений потока), возвращаемое значение равно нулю.
Комментарии
Функция TranslateMessage не изменяет сообщение, на которое указывает параметр lpMsg .
WM_KEYDOWN и WM_KEYUP сочетания создают WM_CHAR или WM_DEADCHAR сообщение. WM_SYSKEYDOWN и WM_SYSKEYUP сочетания создают сообщение WM_SYSCHAR или WM_SYSDEADCHAR .
TranslateMessage создает WM_CHAR сообщений только для клавиш, сопоставленных с символами ASCII драйвером клавиатуры.
Если приложения обрабатывают сообщения с виртуальным ключом для какой-то другой цели, они не должны вызывать TranslateMessage. Например, приложение не должно вызывать TranslateMessage , если функция TranslateAccelerator возвращает ненулевое значение. Обратите внимание, что приложение отвечает за получение и отправку входных сообщений в диалоговое окно. Большинство приложений используют для этого цикл сообщений main. Тем не менее, чтобы разрешить пользователю переходить к элементам управления и выбирать их с помощью клавиатуры, приложение должно вызвать IsDialogMessage. Дополнительные сведения см. в разделе Интерфейс клавиатуры диалогового окна.
Примеры
Пример см. в разделе Создание цикла сообщений.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | winuser.h (включая Windows.h) |
Библиотека | User32.lib |
DLL | User32.dll |
Набор API | ext-ms-win-ntuser-message-l1-1-0 (появилось в Windows 8) |