TranslateAcceleratorA 関数 (winuser.h)
メニュー コマンドのアクセラレータ キーを処理します。 関数は 、WM_KEYDOWN または WM_SYSKEYDOWN メッセージを WM_COMMAND または WM_SYSCOMMAND メッセージに変換し (指定したアクセラレータ テーブルにキーのエントリがある場合)、 WM_COMMAND または WM_SYSCOMMAND メッセージを指定されたウィンドウ プロシージャに直接送信します。 TranslateAccelerator は、ウィンドウ プロシージャがメッセージを処理するまで戻りません。
構文
int TranslateAcceleratorA(
[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またはメッセージの wParam パラメーターの上位ワードには値 1 WM_SYSCOMMAND が含まれています。
ウィンドウ メニューから項目を選択するために使用されるアクセラレータ キーの組み合わせは、WM_SYSCOMMAND メッセージに変換されます。他のすべてのアクセラレータ キーの組み合わせは、WM_COMMAND メッセージに変換されます。
TranslateAccelerator が 0 以外の値を返し、メッセージが翻訳された場合、アプリケーションは TranslateMessage 関数を使用してメッセージを再処理しないでください。
アクセラレータはメニュー コマンドに対応している必要はありません。
アクセラレータ コマンドがメニュー項目に対応する場合、アプリケーションは、ユーザーがメニューを表示しようとしているかのように、 WM_INITMENU してメッセージを WM_INITMENUPOPUP します。 ただし、次のいずれかの条件が存在する場合、これらのメッセージは送信されません。
- このウィンドウは無効になっています。
- アクセラレータ キーの組み合わせは、 ウィンドウ メニューの項目に対応せず、ウィンドウは最小化されます。
- マウス キャプチャが有効です。 マウス キャプチャの詳細については、 SetCapture 関数を参照してください。
メニューを所有するウィンドウが最小化されているときに、メニュー項目に対応するアクセラレータキーストロークが発生した場合、 TranslateAccelerator は WM_COMMAND メッセージを送信しません。 ただし、ウィンドウのメニューまたはウィンドウ メニューのどの項目とも一致しないアクセラレータキーストロークが発生した場合、ウィンドウが最小化されている場合でも、関数はWM_COMMANDメッセージを送信します。
例
例については、「 フォント属性のアクセラレータの作成」を参照してください。
注意
winuser.h ヘッダーは、TranslateAccelerator をエイリアスとして定義し、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | winuser.h (Windows.h を含む) |
Library | User32.lib |
[DLL] | User32.dll |
関連項目
概念
リファレンス