キーボード アクセラレータ

キーボード アクセラレータ (または単純にアクセラレータ) は、アプリケーションのWM_COMMANDまたはWM_SYSCOMMAND メッセージを生成するキーストロークまたはキーストロークの組み合わせです。

このセクションの内容

名前 説明
キーボード アクセラレータについて キーボード アクセラレータについて説明します。
キーボード アクセラレータの使用 キーボード アクセラレータに関連付けられているタスクについて説明します。
キーボード アクセラレータ リファレンス API リファレンスを収録しています。

キーボード アクセラレータ関数

名前 説明
CopyAcceleratorTable 指定したアクセラレータ テーブルをコピーします。 この関数は、アクセラレータ テーブル ハンドルに対応するアクセラレータ テーブル データを取得したり、アクセラレータ テーブル データのサイズを決定したりするために使用されます。
CreateAcceleratorTable アクセラレータ テーブルを作成します。
DestroyAcceleratorTable アクセラレータ テーブルを破棄します。
LoadAccelerators 指定したアクセラレータ テーブルを読み込みます。
TranslateAccelerator メニュー コマンドのアクセラレータ キーを処理します。 関数は 、WM_KEYDOWN または WM_SYSKEYDOWN メッセージを WM_COMMAND または WM_SYSCOMMAND メッセージに変換し (指定したアクセラレータ テーブルにキーのエントリがある場合)、 WM_COMMAND または WM_SYSCOMMAND メッセージを指定されたウィンドウ プロシージャに直接送信します。 TranslateAccelerator は、ウィンドウ プロシージャがメッセージを処理するまで戻りません。

キーボード アクセラレータ メッセージ

名前 説明
WM_CHANGEUISTATE UI の状態を変更する必要があることを示すために送信されます。
WM_INITMENU メニューがアクティブになりようとしているときに送信されます。 これは、ユーザーがメニュー バーの項目をクリックするか、メニュー キーを押したときに発生します。 これにより、アプリケーションはメニューを表示する前に変更できます。
ウィンドウは、WindowProc 関数を介してこのメッセージを受け取ります。
WM_QUERYUISTATE ウィンドウの UI 状態を取得するために送信されます。
WM_UPDATEUISTATE 指定したウィンドウとそのすべての子ウィンドウの UI 状態を変更するために送信されます。

キーボード アクセラレータの通知

名前 説明
WM_INITMENUPOPUP ドロップダウン メニューまたはサブメニューがアクティブになりようとしているときに送信されます。 これにより、アプリケーションはメニュー全体を変更することなく、表示前にメニューを変更できます。
WM_MENUCHAR メニューがアクティブで、ユーザーがニーモニックキーまたはアクセラレータキーに対応しないキーを押したときに送信されます。 このメッセージは、メニューを所有するウィンドウに送信されます。
WM_MENUSELECT ユーザーがメニュー項目を選択したときに、メニューの所有者ウィンドウに送信されます。
WM_SYSCHAR WM_SYSKEYDOWN メッセージがTranslateMessage 関数によって翻訳されるときに、キーボード フォーカスを使用してウィンドウに投稿されます。 システム文字キーの文字コードを指定します。つまり、Alt キーがダウンしている間に押される文字キーです。
WM_SYSCOMMAND ウィンドウは、ユーザーが [ ウィンドウ ] メニューからコマンドを選択したとき、またはユーザーが最大化ボタン、最小化ボタン、復元ボタン、または閉じるボタンを選択したときに、このメッセージを受け取ります。

キーボード アクセラレータの構造

名前 説明
アクセル アクセラレータ テーブルで使用されるアクセラレータ キーを定義します。