TranslateMessage 関数 (winuser.h)

仮想キー メッセージを文字メッセージに変換します。 文字メッセージは、次に スレッドが GetMessage または PeekMessage 関数を呼び出す際に読み取られる、呼び出し元のスレッドのメッセージ キューに投稿されます。

構文

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

パラメーター

[in] lpMsg

型: const MSG*

GetMessage 関数または PeekMessage 関数を使用して呼び出し元のスレッドのメッセージ キューから取得したメッセージ情報を含む MSG 構造体へのポインター。

戻り値

種類: BOOL

メッセージが変換された場合 (つまり、文字メッセージがスレッドのメッセージ キューにポストされます)、戻り値は 0 以外です。

メッセージがWM_KEYDOWNWM_KEYUP、WM_SYSKEYDOWN、またはWM_SYSKEYUPの場合、戻り値は翻訳に関係なく 0 以外になります。

メッセージが変換されない (つまり、文字メッセージがスレッドのメッセージ キューにポストされない) 場合、戻り値は 0 です。

注釈

TranslateMessage 関数は、lpMsg パラメーターが指すメッセージを変更しません。

WM_KEYDOWNWM_KEYUP の組み合わせにより、 WM_CHARまたはWM_DEADCHAR メッセージ 生成されます。 WM_SYSKEYDOWNWM_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 で導入)

こちらもご覧ください