コントロール (コントロールの開発者によって決定) いくつか動作 (キーストローク、マウスのクリック、またはコントロールの状態を変更) などがそのコンテナーを通知するときは、イベント発生関数を呼び出します。この関数、関連するイベントを発生させることによっていくつかの重要なアクションが発生した、コントロール コンテナーに通知します。
Microsoft Foundation クラス ライブラリのイベントを発生させるために最適化されたプログラミング モデルを提供しています。このモデルでは、「マップ」イベントを使用して関数の特定のコントロールのイベント発生を指定します。イベント マップには、イベントごとに 1 つのマクロが含まれています。たとえば、ストックの Click イベントを発生、イベント マップを次のようになります:
BEGIN_EVENT_MAP (CSampleCtrl、COleControl)//{{AFX_EVENT_MAP(CSampleCtrl)EVENT_STOCK_CLICK)//}}AFX_EVENT_MAPEND_EVENT_MAP()
EVENT_STOCK_CLICKマクロは、コントロールがマウス クリックが検出されるたびに、ストックの Click イベントを起動することを示します。ほかのストック イベントの詳細についてを参照してください、記事 ActiveX コントロール: イベントでVisual の C++ プログラマのガイド。マクロは、カスタム イベントを示すために利用可能なも。
イベント マップ マクロは重要ですが、一般的に直接挿入しないでください。これは、ClassWizard はイベント発生関数をイベントと関連付けるに使用時にイベント マップ エントリをソース ファイルに自動的に作成するためです。編集または、イベント マップ エントリを追加するとき、ClassWizard を使用できます。
イベント マップをサポートするには、MFC では、次のマクロを提供します。:
イベント マップの宣言と境界設定
| DECLARE_EVENT_MAP | イベント マップ クラスでイベント (クラス宣言で使用する必要があります) イベント発生関数をマップに使用することを宣言します。 |
| BEGIN_EVENT_MAP | (クラスの実装で使用する必要があります)、イベント マップの定義を開始します。 |
| END_EVENT_MAP | (クラスの実装で使用する必要があります)、イベント マップの定義を終了します。 |
イベント マップ マクロ
| EVENT_CUSTOM | イベント発生関数は、指定したイベントが発生しますを示します。 |
| EVENT_CUSTOM_ID | イベント発生関数は、指定したイベントは、指定されたディスパッチ ID を持つ起動を示します。 |
メッセージ マップ マクロ
| ON_OLEVERB | OLE コントロールで処理するカスタム動詞を示します。 |
| ON_STDOLEVERB | OLE コントロールの標準動詞マップを上書き。 |