TranslateMessage 関数 (winuser.h)
仮想キー メッセージを文字メッセージに変換します。 文字メッセージは、次に スレッドが GetMessage または PeekMessage 関数を呼び出す際に読み取られる、呼び出し元のスレッドのメッセージ キューに投稿されます。
構文
BOOL TranslateMessage(
[in] const MSG *lpMsg
);
パラメーター
[in] lpMsg
型: const MSG*
GetMessage 関数または PeekMessage 関数を使用して呼び出し元のスレッドのメッセージ キューから取得したメッセージ情報を含む MSG 構造体へのポインター。
戻り値
種類: BOOL
メッセージが変換された場合 (つまり、文字メッセージがスレッドのメッセージ キューにポストされます)、戻り値は 0 以外です。
メッセージがWM_KEYDOWN、WM_KEYUP、WM_SYSKEYDOWN、またはWM_SYSKEYUPの場合、戻り値は翻訳に関係なく 0 以外になります。
メッセージが変換されない (つまり、文字メッセージがスレッドのメッセージ キューにポストされない) 場合、戻り値は 0 です。
注釈
TranslateMessage 関数は、lpMsg パラメーターが指すメッセージを変更しません。
WM_KEYDOWN と WM_KEYUP の組み合わせにより、 WM_CHARまたはWM_DEADCHAR メッセージ が 生成されます。 WM_SYSKEYDOWN と WM_SYSKEYUP の組み合わせにより、 WM_SYSCHARまたはWM_SYSDEADCHAR メッセージ が 生成されます。
TranslateMessageは、 キーボード ドライバーによって ASCII 文字にマップされたキーに対してのみ、WM_CHARメッセージを生成します。
アプリケーションが他の目的で仮想キー メッセージを処理する場合は、 TranslateMessage を呼び出さないでください。 たとえば、TranslateAccelerator 関数が 0 以外の値を返す場合、アプリケーションは TranslateMessage を呼び出さないでください。 アプリケーションは、入力メッセージの取得とダイアログ ボックスへのディスパッチを担当することに注意してください。 ほとんどのアプリケーションでは、メイン メッセージ ループを使用します。 ただし、ユーザーがキーボードを使用してコントロールに移動したり、コントロールを選択したりできるようにするには、アプリケーションで IsDialogMessage を呼び出す必要があります。 詳細については、「 ダイアログ ボックス キーボード インターフェイス」を参照してください。
例
例については、「 メッセージ ループの作成」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | winuser.h (Windows.h を含む) |
Library | User32.lib |
[DLL] | User32.dll |
API セット | ext-ms-win-ntuser-message-l1-1-0 (Windows 8 で導入) |