ActiveX コントロールは、イベントを使用して、コントロールに何かが発生したことをコンテナーに通知します。 イベントの一般的な例としては、コントロールのクリック、キーボードを使用して入力されたデータ、コントロールの状態の変更などがあります。 これらのアクションが発生すると、コントロールはイベントを発生してコンテナーに警告します。
イベントはメッセージとも呼ばれます。
MFC では、ストックとカスタムの 2 種類のイベントがサポートされています。 ストック イベントは、 COleControl クラスが自動的に処理するイベントです。 ストック イベントの完全な一覧については、 MFC ActiveX コントロール: ストック イベントの追加に関する記事を参照してください。 カスタム イベントを使用すると、コントロールに固有のアクションが発生したときにコンテナーに通知できます。 たとえば、コントロールの内部状態の変更や、特定のウィンドウ メッセージの受信などです。
コントロールがイベントを適切に発生させるには、コントロール クラスがコントロールの各イベントを、関連するイベントが発生したときに呼び出されるメンバー関数にマップする必要があります。 このマッピング メカニズム (イベント マップと呼ばれます) は、イベントに関する情報を一元化し、Visual Studio がコントロールのイベントに簡単にアクセスして操作できるようにします。 このイベントマップは、コントロールクラス宣言のヘッダーファイル(.H)にある次のマクロによって宣言されます。
DECLARE_EVENT_MAP()
イベント マップが宣言されたら、コントロールの実装 (.CPP) ファイルで定義する必要があります。 次のコード行はイベント マップを定義し、コントロールが特定のイベントを発生できるようにします。
BEGIN_EVENT_MAP(CMyAxUICtrl, COleControl)
END_EVENT_MAP()
MFC ActiveX コントロール ウィザードを使用してプロジェクトを作成すると、これらの行が自動的に追加されます。 MFC ActiveX コントロール ウィザードを使用しない場合は、これらの行を手動で追加する必要があります。
クラス ビューを使用すると、クラス COleControl
または定義したカスタム イベントでサポートされるストック イベントを追加できます。 新しいイベントごとに、クラス ビューはコントロールのイベント マップとIDLファイルに適切なエントリを自動的に追加します。
他の 2 つの記事では、イベントについて詳しく説明します。