翻译字符消息

【勇芳软件工作室】汉化HomePreviousNext

从用户接收字符输入的任何线程都必须在其消息循环中包含TranslateMessage函数。此函数检查按键消息的虚拟键代码,如果代码对应于字符,则将字符消息放入消息队列中。字符消息在消息循环的下一次迭代中被删除和分派;消息的【wParam中】参数包含字符代码。

一般来说,线程的消息循环应该使用TranslateMessage函数来翻译每个消息,而不仅仅是虚拟键消息。虽然TranslateMessage对其他类型的邮件没有影响,但它保证键盘输入被正确翻译。以下示例显示如何将TranslateMessage函数包含在典型的线程消息循环中。

while(GetMessage(& msg,(HWND)NULL,0,0)){

if (TranslateAccelerator(hwndMain, haccl, &msg) == 0) {

TranslateMessage(&msg);

DispatchMessage(&msg);

}

}