TranslateMessage 函式功能
函式功能:該函式將虛擬鍵訊息轉換為字元訊息。字元訊息被寄送到調用執行緒的訊息佇列里,當下一次執行緒調用函式GetMessage或PeekMessage時被讀出。
函式原型:BOOL TranslateMessage(CONST MSG★lpMsg);
TranslateMessage 參數
參數:
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。