MFC ActiveX コントロール : ストック メソッドの追加

ストック メソッドは、クラス COleControl によって既に実装されているという点で、カスタム メソッドとは異なります。 たとえば、COleControl には、コントロールの Refresh メソッドをサポートする定義済みのメンバー関数が含まれているとします。 このストック メソッドのディスパッチ マップ エントリは、DISP_STOCKFUNC_REFRESH です。

重要

ActiveX は、新しい開発には使用すべきではないレガシ テクノロジです。 ActiveX に取って代わる最新のテクノロジの詳細については、「ActiveX コントロール」を参照してください。

COleControl では、DoClick と Refresh という 2 つのストック メソッドがサポートされています。 Refresh は、コントロールの外観をすぐに更新するために、コントロールのユーザーによって呼び出されます。DoClick は、コントロールの Click イベントによって呼び出されます。

方法 ディスパッチ マップ エントリ 解説
DoClick DISP_STOCKPROP_DOCLICK( ) Click イベントを発生させます。
Refresh DISP_STOCKPROP_REFRESH( ) コントロールの外観を直ちに更新します。

メソッド追加ウィザードを使用したストック メソッドの追加

ストック メソッドの追加は、シンプルにメソッド追加ウィザードを使用します。 次の手順では、MFC ActiveX コントロール ウィザードを使用して作成されたコントロールに Refresh メソッドを追加する手順を示しています。

メソッド追加ウィザードを使用してストックの Refresh メソッドを追加するには

  1. コントロールのプロジェクトを読み込みます。

  2. [クラス ビュー] で、コントロールのライブラリ ノードを展開します。

  3. コントロールのインターフェイス ノード (ライブラリ ノードの 2 番目のノード) を右クリックし、ショートカット メニューを開きます。

  4. ショートカット メニューの [追加][メソッドの追加] の順にクリックします。

    これにより、メソッ追加ウィザードが開きます。

  5. [メソッド名] ボックスで、[更新] をクリックします。

  6. [完了] をクリックします。

メソッド追加ウィザードでのストック メソッドの変更

ストックの Refresh メソッドはコントロールの基本クラスでサポートされているので、メソッド追加ウィザードでは、コントロールのクラス宣言は一切変更されません。 コントロールのディスパッチ マップとその IDL ファイルにメソッドのエントリが追加されます。 次の行が、その実装 (.CPP) ファイルの中にあるコントロールのディスパッチ マップに追加されます。

DISP_STOCKFUNC_REFRESH()

これにより、Refresh メソッドをコントロールのユーザーが使用できます。

次の行が、コントロールの .IDL ファイルに追加されます。

[id(DISPID_REFRESH), helpstring("method Refresh")] void Refresh(void);

この行により、Refresh メソッドに特定の ID 番号が割り当てられます。

関連項目

MFC ActiveX コントロール