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 つのアーティクルを参照してください: