TranslateMessage
 是用来把虚拟键消息转换为字符消息。由于
 Windows
 对所有键盘编码都是采用虚拟键的定义,这样当按键按下时,并不得字符消息,需要键盘映射转换为字符的消息。 TranslateMessage
 函数用于将虚拟键消息转换为字符消息。字符消息被投递到调用线程的消息队列中,当下一次调用
 GetMessage
 函数时被取出。当我们敲击键盘上的某个字符键时,系统将产生
 WM_KEYDOWN
 和
 WM_KEYUP
 消息。这两个消息的附加参数(
 wParam
 和
 lParam
 )包含的是虚拟键代码和扫描码等信息,而我们在程序中往往需要得到某个字符的
 ASCII
 码,
 TranslateMessage
 这个函数就可以将
 WM_KEYDOWN
 和
 WM_ KEYUP
 消息的组合转换为一条
 WM_CHAR
 消息(该消息的
 wParam
 附加参数包含了字符的
 ASCII
 码),并将转换后的新消息投递到调用线程的消息队列中。注意,
 TranslateMessage
 函数并不会修改原有的消息,它只是产生新的消息并投递到消息队列中。 也就是说
 TranslateMessage
 会发现消息里是否有字符键的消息,如果有字符键的消息,就会产生
 WM_CHAR
 消息,如果没有就会产生什么消息。   函数
 TranslateMessage
 声明如下: WINUSERAPI BOOL WINAPI TranslateMessage(     __in CONST MSG *lpMsg); lpMsg
 是检查需要转换的消息。   调用这个函数的例子如下: #001 //
 主程序入口 #002 // #003 // 
 蔡军生
  2007/07/19 #004 // QQ: 9073204 #005 // #006 int APIENTRY _tWinMain(HINSTANCE hInstance, #007                       HINSTANCE hPrevInstance, #008                       LPTSTR    lpCmdLine, #009                       int       nCmdShow) #010 {
  #011  UNREFERENCED_PARAMETER(hPrevInstance); #012  UNREFERENCED_PARAMETER(lpCmdLine); #013  #014   // #015  MSG msg; #016  HACCEL hAccelTable; #017  #018  // 
 加载全局字符串。 #019  LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING); #020  LoadString(hInstance, IDC_TESTWIN, szWindowClass, MAX_LOADSTRING); #021  MyRegisterClass(hInstance); #022  #023  // 
 应用程序初始化
 : #024  if (!InitInstance (hInstance, nCmdShow)) #025  {
  #026         return FALSE; #027  } #028  #029  hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_TESTWIN)); #030  #031  // 
 消息循环
 : #032  BOOL bRet; #033  while ( (bRet = GetMessage(&msg, NULL, 0, 0)) != 0) #034  {
  #035          if (bRet == -1) #036         {
  #037               //
 处理出错。 #038  #039         } #040         else if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) #041         {
  #042               TranslateMessage(&msg); #043               DispatchMessage(&msg); #044         } #045  } #046  #047  return (int) msg.wParam; #048 } #049   
第
42
行是调用函数
TranslateMessage
作消息转换工作。 

