MFC ActiveX コントロール : メソッド
ActiveX コントロールは、イベントを発生させることによって、コントロール コンテナーと通信します。 コンテナーは、メソッドとプロパティを使ってコントロールと通信します。 メソッドは、関数とも呼ばれます。
メソッドとプロパティは、オートメーション クライアントや ActiveX コントロール コンテナーなどのほかのアプリケーションで使用するために公開されたインターフェイスを提供します。 ActiveX コントロールのプロパティの詳細についてを参照してください「MFC ActiveX コントロール:プロパティ。
メソッドの使い方や目的は、C++ クラスのメンバー関数に似ています。 2 つの種類のコントロールを実装することができる方法です。株価およびカスタム。 ストック メソッドは、ストック イベントと同じように、COleControl によって実装されるメソッドです。 ストック メソッドの詳細についてを参照してください「MFC ActiveX コントロール:ストック メソッドの追加。 カスタム メソッドを定義すると、コントロールをさらにカスタマイズできます。 詳細についてを参照してください「MFC ActiveX コントロール:カスタム メソッドの追加。
MFC (Microsoft Foundation Class) ライブラリには、コントロールがストック メソッドやカスタム メソッドをサポートできるようにするための機構が実装されています。 この機構の 1 番目の要素は、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 コントロール ウィザードを使わなかった場合は、このコードを直接追加する必要があります。
メソッドの詳細については、以下のトピックを参照してください。