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