TranslateAcceleratorW 関数 (winuser.h)
メニュー コマンドのアクセラレータ キーを処理します。 関数は 、WM_KEYDOWN メッセージまたは WM_SYSKEYDOWN メッセージを WM_COMMAND または WM_SYSCOMMAND メッセージに変換し (指定したアクセラレータ テーブルにキーのエントリがある場合)、 WM_COMMAND または WM_SYSCOMMAND メッセージを指定されたウィンドウ プロシージャに直接送信します。 TranslateAccelerator は、ウィンドウ プロシージャがメッセージを処理するまで戻りません。
構文
int TranslateAcceleratorW(
[in] HWND hWnd,
[in] HACCEL hAccTable,
[in] LPMSG lpMsg
);
パラメーター
[in] hWnd
型: HWND
メッセージを翻訳するウィンドウへのハンドル。
[in] hAccTable
種類: HACCEL
アクセラレータ テーブルへのハンドル。 アクセラレータ テーブルは 、LoadAccelerators 関数の呼び出しによって読み込まれたか、 CreateAcceleratorTable 関数の呼び出しによって作成されている必要があります。
[in] lpMsg
種類: LPMSG
GetMessage 関数または PeekMessage 関数を使用して呼び出し元スレッドのメッセージ キューから取得したメッセージ情報を含む MSG 構造体へのポインター。
戻り値
型: int
関数が成功すると、戻り値は 0 以外になります。
関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。
解説
この関数がメニューまたはコントロールによって送信されるメッセージと区別するために、WM_COMMANDまたはWM_SYSCOMMAND メッセージの wParam パラメーターの上位ワードに値 1 が含まれています。
ウィンドウ メニューから項目を選択するために使用されるアクセラレータ キーの組み合わせは、WM_SYSCOMMAND メッセージに変換されます。他のすべてのアクセラレータ キーの組み合わせは、WM_COMMAND メッセージに変換されます。
TranslateAccelerator が 0 以外の値を返し、メッセージが変換された場合、アプリケーションは TranslateMessage 関数を使用してメッセージを再度処理しないでください。
アクセラレータはメニュー コマンドに対応している必要はありません。
アクセラレータ コマンドがメニュー項目に対応する場合、ユーザーがメニュー を 表示しようとしているかのように、アプリケーションが WM_INITMENU 送信され、メッセージがWM_INITMENUPOPUPされます。 ただし、次のいずれかの条件が存在する場合、これらのメッセージは送信されません。
- ウィンドウが無効になっています。
- アクセラレータ キーの組み合わせは、 ウィンドウ メニューの項目に対応せず、ウィンドウは最小化されます。
- マウス キャプチャが有効です。 マウス キャプチャの詳細については、 SetCapture 関数を参照してください。
メニューを所有するウィンドウが最小化されているときにメニュー項目に対応するアクセラレータキーストロークが発生した場合、 TranslateAccelerator は WM_COMMAND メッセージを送信しません。 ただし、ウィンドウのメニューまたはウィンドウ メニューのどの項目とも一致しないアクセラレータキーストロークが発生した場合、ウィンドウが最小化されている場合でも、関数はWM_COMMANDメッセージを送信します。
例
例については、「 フォント属性のアクセラレータの作成」を参照してください。
注意
winuser.h ヘッダーは TranslateAccelerator をエイリアスとして定義します。このエイリアスは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | winuser.h (Windows.h を含む) |
Library | User32.lib |
[DLL] | User32.dll |