### 函数功能

该函数将虚拟键消息转换为字符消息。字符消息被寄送到调用线程的消息队列里，当下一次线程调用函数GetMessage或PeekMessage时被读出。

### 函数原型

BOOL TranslateMessage（CONST MSG★lpMsg）；

### 参数

IpMsg：指向含有消息的MSG结构的指针，该结构里含有用函数GetMessage或PeekMessage从调用线程的消息队列里取得的消息信息。

### 返回值

如果消息被转换（即，字符消息被寄送到调用线程的消息队列里），返回非零值。如果消息是WM_kEYDOWN，WM_KEYUP WM_SYSKEYDOWN或WM_SYSKEYUP，返回非零值，不考虑转换。如果消息没被转换（即，字符消息没被寄送到调用线程的消息队列里），返回值是零。
备注：此函数不修改由参数IpMsg指向的消息。
WM_KEYDOWN和WM_KEYUP组合产生一个WM_CHAR或WM_DEADCHAR消息。
WM_SYSKEYDOWN和WM_SYSKEYUP组合产生一个SYSWM_CHAR或 WM_SYSDEADCHAR消息。TtanslateMessage为那些由键盘驱动器映射为ASCll字符的键产生WM_CHAR消息。
如果应用程序为其他用途处理虚拟键消息，不应调用TranslateMessage。例如，如果件ThranslateAccelerator返回一个非零值，应用程序不应调用TranslateMessage。
Windows CE：Windows CE不支持扫描码或扩展键标志，因此，不支持由TranslateMessage产生的WM_CHAR消息中的IKeyData参数（IParam）取值16-24。
TranslateMessage只能用于转换调用GetMessage或PeekMessage接收的消息。

### 速查

Windows NT：3.1及以上版本；Windows：95及以上版本；Windows CE：1.0及以上版本；头文件：winuser.h；输入库：user32.lib。