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 メソッドを追加するには
コントロールのプロジェクトを読み込みます。
[クラス ビュー] で、コントロールのライブラリ ノードを展開します。
コントロールのインターフェイス ノード (ライブラリ ノードの 2 番目のノード) を右クリックし、ショートカット メニューを開きます。
ショートカット メニューの [追加]、[メソッドの追加] の順にクリックします。
これにより、メソッ追加ウィザードが開きます。
[メソッド名] ボックスで、[更新] をクリックします。
[完了] をクリックします。
メソッド追加ウィザードでのストック メソッドの変更
ストックの Refresh メソッドはコントロールの基本クラスでサポートされているので、メソッド追加ウィザードでは、コントロールのクラス宣言は一切変更されません。 コントロールのディスパッチ マップとその IDL ファイルにメソッドのエントリが追加されます。 次の行が、その実装 (.CPP) ファイルの中にあるコントロールのディスパッチ マップに追加されます。
DISP_STOCKFUNC_REFRESH()
これにより、Refresh メソッドをコントロールのユーザーが使用できます。
次の行が、コントロールの .IDL ファイルに追加されます。
[id(DISPID_REFRESH), helpstring("method Refresh")] void Refresh(void);
この行により、Refresh メソッドに特定の ID 番号が割り当てられます。