TranslateMessage 函式 (winuser.h)

將虛擬金鑰訊息轉譯為字元訊息。 字元訊息會張貼至呼叫線程的訊息佇列,下次線程呼叫 GetMessagePeekMessage 函式時要讀取。

語法

BOOL TranslateMessage(
  [in] const MSG *lpMsg
);

參數

[in] lpMsg

類型: const MSG*

MSG 結構的指標,其中包含使用 GetMessagePeekMessage 函式從呼叫線程消息佇列擷取的訊息資訊。

傳回值

類型: BOOL

如果訊息轉譯 (,則會將字元訊息張貼至線程的訊息佇列) ,傳回值為非零。

如果訊息 是WM_KEYDOWNWM_KEYUPWM_SYSKEYDOWNWM_SYSKEYUP,則不論翻譯為何,傳回值都是非零的。

如果未 (轉譯訊息,則字元訊息不會張貼至線程的訊息佇列) ,則傳回值為零。

備註

TranslateMessage 函式不會修改 lpMsg 參數所指向的訊息。

WM_KEYDOWNWM_KEYUP 組合會產生 WM_CHARWM_DEADCHAR 訊息。 WM_SYSKEYDOWNWM_SYSKEYUP 組合會產生 WM_SYSCHARWM_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)

另請參閱