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。 請注意,應用程式負責擷取和分派輸入訊息至對話方塊。 大部分的應用程式都會針對此使用主要訊息迴圈。 不過,若要允許使用者移至 並使用鍵盤選取控件,應用程式必須呼叫 IsDialogMessage。 如需詳細資訊,請參閱 對話框鍵盤介面。
範例
如需範例,請參閱 建立訊息迴圈。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | winuser.h (包括 Windows.h) |
程式庫 | User32.lib |
Dll | User32.dll |
API 集合 | ext-ms-win-ntuser-message-l1-1-0 (於 Windows 8) |