MFC ActiveX コントロール : イベント

ActiveX コントロールはイベントを使用して、コントロールに何かが発生したことをコンテナーに通知します。 イベントの一般的な例としては、コントロールのクリック、キーボードで入力されたデータ、コントロールの状態の変更などがあります。 これらのアクションが発生すると、コントロールは、コンテナーに警告するイベントを発生させます。

イベントは、メッセージとも呼ばれます。

MFC では、stock と custom の 2 種類のイベントがサポートされています。 Stock イベントは、COleControl クラスが自動的に処理するイベントです。 stock イベントの完全な一覧は、MFC ActiveX コントロール: ストックイベントの追加を参照してください。 Custom イベントを使用すると、そのコントロールに固有のアクションが発生したときにコンテナーに通知する機能を制御できます。 たとえば、コントロールの内部状態の変化や、特定のウィンドウ メッセージの受信などが挙げられます。

コントロールがイベントを適切に起動するには、コントロール クラスが、関連イベントが発生したときに呼び出されるメンバー関数にコントロールの各イベントをマップする必要があります。 このマッピング機構 (イベント マップと呼ばれます) は、イベントに関する情報を一元化し、Visual Studio がコントロールのイベントに簡単にアクセスして操作できるようにします。 このイベント マップは、コントロール クラス宣言のヘッダ (.H) ファイルにある以下のマクロで宣言されています:

DECLARE_EVENT_MAP()

イベント マップを宣言した後は、コントロールの実装 (.CPP) ファイルで定義する必要があります。 以下のコードは、イベント マップを定義し、コントロールが特定のイベントを実行できるようにします:

BEGIN_EVENT_MAP(CMyAxUICtrl, COleControl)
END_EVENT_MAP()

MFC ActiveX コントロール ウィザードを使用してプロジェクトを作成すると、これらの行が自動的に追加されます。 MFC ActiveX コントロール ウィザードを使用しない場合は、これらの行を手動で追加する必要があります。

クラス ビューを使用すると、定義したクラス COleControl またはカスタム イベントでサポートされている stock イベントを追加できます。 新しいイベントが発生するたびに、クラス ビューはコントロールのイベント マップとコントロールの .IDLファイルに適切なエントリを自動的に追加します。

イベントの詳細は、次の 2 つのアーティクルを参照してください:

関連項目

MFC ActiveX コントロール
MFC ActiveX コントロール: メソッド
COleControl クラス