イベント マップ

更新 : 2007 年 11 月

ある動作 (キーストローク、マウス クリック、コントロールの状態変更などの動作で、コントロールの開発者が決定します) が発生したことをコントロールがコンテナに通知するときは、イベント起動関数が呼び出されます。この関数は、ある重要な動作が発生したときに、関連するイベントを起動することによって、コントロールのコンテナにそれを通知します。

Microsoft Foundation Class ライブラリには、イベントの起動に最適化されたプログラミング モデルが用意されています。このモデルでは、特定のコントロールに対してどの関数がどのイベントを発生させるかを指定した "イベント マップ" を使用します。イベント マップには、イベントごとに 1 つのマクロがあります。たとえば、ストック Click イベントを発生させるイベント マップは次のようになります。

BEGIN_EVENT_MAP(CMyAxCtrl, COleControl)
   EVENT_STOCK_CLICK()
END_EVENT_MAP()

EVENT_STOCK_CLICK マクロは、コントロールがマウス クリックを検知するたびにストック Click イベントが発生することを示します。ほかのストック イベントの詳細については、「MFC ActiveX コントロール : イベント」を参照してください。マクロはカスタム イベントを示すためにも使用できます。

イベント マップ マクロは重要なマクロですが、通常は直接記述しません。これは、ユーザーがイベントとイベント起動関数を関連付けると、[プロパティ] ウィンドウでイベント マップ エントリがソース ファイルに自動的に作成されるためです。イベント マップ エントリは、[プロパティ] ウィンドウでいつでも編集および追加できます。

イベント マップをサポートするため、MFC には次のマクロが用意されています。

イベント マップの宣言と境界設定

DECLARE_EVENT_MAP

イベントをイベント起動関数に割り当てるためにクラスでイベント マップを使用することを宣言します。クラスの宣言の中で使用する必要があります。

BEGIN_EVENT_MAP

イベント マップの定義を開始します。クラスの実装の中で使用する必要があります。

END_EVENT_MAP

イベント マップの定義を終了します。クラスの実装の中で使用する必要があります。

イベント マップ マクロ

EVENT_CUSTOM

指定したイベントを発生させるイベント起動関数を示します。

EVENT_CUSTOM_ID

指定したディスパッチ ID を使用して、指定したイベントを発生させるイベント起動関数を示します。

メッセージ マップ マクロ

ON_OLEVERB

OLE コントロールが処理するカスタム動詞を示します。

ON_STDOLEVERB

OLE コントロールの標準動詞マップをオーバーライドします。

参照

概念

MFC マクロとグローバル