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 仅为键盘驱动程序映射到 ASCII 字符的键生成 WM_CHAR 消息。
如果应用程序出于其他目的处理虚拟密钥消息,则它们不应调用 TranslateMessage。 例如,如果 TranslateAccelerator 函数返回非零值,则应用程序不应调用 TranslateMessage。 请注意,应用程序负责检索输入消息并将其调度到对话框中。 大多数应用程序为此使用main消息循环。 但是,若要允许用户移动到 并使用键盘选择控件,应用程序必须调用 IsDialogMessage。 有关详细信息,请参阅 对话框键盘接口。
示例
有关示例,请参阅 创建消息循环。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | winuser.h (包括 Windows.h) |
Library | User32.lib |
DLL | User32.dll |
API 集 | 在 Windows 8) 中引入的 ext-ms-win-ntuser-message-l1-1-0 ( |