次の方法で共有


MFC ActiveX コントロール: メソッド

ActiveX コントロールは、イベントを発生させ、それ自体とそのコントロール コンテナーの間で通信します。 コンテナーは、メソッドとプロパティを使用してコントロールと通信することもできます。 メソッドは関数とも呼ばれます。

メソッドとプロパティは、オートメーション クライアントや ActiveX コントロール コンテナーなど、他のアプリケーションで使用するためのエクスポートされたインターフェイスを提供します。 ActiveX コントロールのプロパティの詳細については、「 MFC ActiveX コントロール: プロパティ」を参照してください。

メソッドの使用方法と目的は、C++ クラスのメンバー関数と似ています。 コントロールで実装できるメソッドには、ストックとカスタムの 2 種類があります。 ストック イベントと同様に、ストック メソッドは 、COleControl が実装を提供するメソッドです。 ストック メソッドの詳細については、「 MFC ActiveX コントロール: ストック メソッドの追加」を参照してください。 開発者が定義するカスタム メソッドを使用すると、コントロールをさらにカスタマイズできます。 詳細については、「 MFC ActiveX コントロール: カスタム メソッドの追加」を参照してください。

Microsoft Foundation クラス ライブラリ (MFC) は、コントロールがストック メソッドとカスタム メソッドをサポートできるようにするメカニズムを実装します。 最初の部分はクラス COleControlです。 CWndから派生したCOleControlメンバー関数は、すべての ActiveX コントロールに共通するストック メソッドをサポートします。 このメカニズムの 2 番目の部分はディスパッチ マップです。 ディスパッチ マップはメッセージ マップに似ています。ただし、ディスパッチ マップは、関数を Windows メッセージ ID にマッピングする代わりに、仮想メンバー関数を IDispatch IDS にマップします。

コントロールがさまざまなメソッドを適切にサポートするには、そのクラスでディスパッチ マップを宣言する必要があります。 このコード行によって、コントロール クラス ヘッダー (.H) ファイルで以下が達成されます。

DECLARE_DISPATCH_MAP()

ディスパッチ マップの主な目的は、外部呼び出し元 (コンテナーなど) によって使用されるメソッド名と、メソッドを実装するコントロールのクラスのメンバー関数との間に関係を確立することです。 ディスパッチ マップが宣言されたら、コントロールの実装 (.CPP) ファイルで定義する必要があります。 次のコード行は、ディスパッチ マップを定義します。

BEGIN_DISPATCH_MAP(CMyAxUICtrl, COleControl)
END_DISPATCH_MAP()

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

次の記事では、メソッドについて詳しく説明します。

こちらも参照ください

MFC ActiveX コントロール