MFC ActiveX コントロール : イベント
ActiveX コントロールは、コントロールに起こった動作をイベントを使ってコンテナーに通知します。 一般的なイベントの例としては、コントロールのクリック、キーボードを使ったデータ入力、コントロールの状態の変化などがあります。 これらの動作が起こると、コントロールは、イベントを発生させてコンテナーに通知します。
イベントは、メッセージとも呼ばれます。
MFC では、2 種類のイベント サポートしています。株価およびカスタム。 ストック イベントとは、COleControl クラスによって自動的に処理されるイベントです。 ストック イベントの一覧についてを参照してください「MFC ActiveX コントロール:ストック イベントの追加。 カスタム イベントを使うと、コントロールに固有の動作が起こったときにそれをコンテナーに通知できます。 たとえば、コントロールの内部状態の変化や特定のウィンドウ メッセージの受信などを通知できます。
コントロールでイベントを正しく発生させるには、コントロール クラスで、コントロールの各イベントをそのイベントが発生したときに呼び出すメンバー関数に割り当てる必要があります。 この割り当てはイベント マップと言い、この機構によってイベントに関する情報を 1 か所に集めることができるため、Visual Studio ではコントロールのイベントに簡単にアクセスして、操作できます。 イベント マップを宣言するには、コントロール クラス宣言のヘッダー (.H) ファイルにある次のマクロを使います。
DECLARE_EVENT_MAP()
イベント マップを宣言したら、それをコントロールの実装 (.CPP) ファイルで定義する必要があります。 イベント マップを定義して、コントロールで特定のイベントを発生させるコード行を次に示します。
BEGIN_EVENT_MAP(CMyAxUICtrl, COleControl)
...
END_EVENT_MAP()
MFC ActiveX コントロール ウィザードを使ってプロジェクトを作成すると、これらのコードが自動的に追加されます。 MFC ActiveX コントロール ウィザードを使わなかった場合は、このコードを直接追加する必要があります。
クラス ビューでは、COleControl クラスでサポートされているストック イベントや自分で定義したカスタム イベントを追加できます。 新しいイベントを追加するたびに、クラス ビューによって、対応するエントリがコントロールのイベント マップと .IDL ファイルに自動的に追加されます。
イベントの詳細については、次の 2 つのトピックを参照してください。