次の方法で共有


プロパティ ページの指定

更新 : 2007 年 11 月

ActiveX コントロールを作成するとき、ActiveX コントロールをプロパティ ページに関連付けて、コントロールのプロパティを設定する場合があります。コントロール コンテナは、ISpecifyPropertyPages インターフェイスを使用して、どのプロパティ ページを使用するとコントロールのプロパティを設定できるかを調べます。このインターフェイスをコントロールに実装する必要があります。

ATL で ISpecifyPropertyPages を実装するには、次の手順を実行します。

  1. 新しいクラスを ISpecifyPropertyPagesImpl から派生します。

  2. クラスの COM マップに ISpecifyPropertyPages のエントリを追加します。

  3. コントロールに関連付けるページごとに、PROP_PAGE エントリをプロパティ マップに追加します。

xd51h1kz.alert_note(ja-jp,VS.90).gifメモ :

ATL コントロール ウィザードで標準コントロールを生成する場合は、プロパティ マップに PROP_PAGE エントリを追加するだけです。残りの手順については、ウィザードが必要なコードを生成します。

正常なコンテナは、プロパティ マップの PROP_PAGE エントリと同じ順序で指定のプロパティ ページを表示します。一般に、プロパティ マップでは、標準的なプロパティ ページ エントリよりも、カスタム ページのエントリを先に指定することをお勧めします。そうすると、作成したコントロールのページが先に表示されます。

次に示すカレンダー コントロールのクラスでは、独自の日付ページとストック カラー ページでプロパティを設定できることを ISpecifyPropertyPages インターフェイスを使用してコンテナに知らせます。

class ATL_NO_VTABLE CMyCtrl :
   OtherInterfaces
   public ISpecifyPropertyPagesImpl<CMyCtrl>
{
public:

BEGIN_COM_MAP(CMyCtrl)
   OtherComMapEntries
   COM_INTERFACE_ENTRY(ISpecifyPropertyPages)
END_COM_MAP()

BEGIN_PROP_MAP(CMyCtrl)
   OtherPropMapEntries
   PROP_PAGE(CLSID_DatePage)
   PROP_PAGE(CLSID_StockColorPage)
END_PROP_MAP()

   // Remainder of class declaration omitted.

参照

処理手順

ATLPages サンプル : IPropertyPageImpl を使用したプロパティ ページの実装

概念

ATL COM プロパティ ページ