次の方法で共有


プロパティ ページの指定

ActiveX コントロールを作成する場合、通常、コントロールのプロパティを設定するために使用できるプロパティ ページに関連する必要があります。コントロールのコンテナーは検索するために、コントロールのプロパティを設定するには、プロパティ ページを使用できる ISpecifyPropertyPages のインターフェイスを使用します。コントロールのこのインターフェイスを実装する必要があります。

ATL を使用して ISpecifyPropertyPages を実装するには、次の手順を実行する:

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

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

  3. は、コントロールに関連付けられている各ページのプロパティ マップに PROP_PAGE のエントリを追加します。

[!メモ]

標準コントロールを [ATL コントロール ウィザード]を使用して生成した場合、プロパティ PROP_PAGE マップにエントリを追加する場合にのみ必要があります。ウィザードは、他の手順を行うために必要なコードが生成されます。

行儀は、コンテナーはプロパティの PROP_PAGE のエントリに対応するのと同じ順序で、指定したプロパティ ページを表示します。通常は、ユーザーがコントロールと特定のページが最初に表示されるように、プロパティ マップに、カスタム ページのエントリの後に標準のプロパティ ページのエントリを設定する必要があります。

Calendar コントロールの次のクラスは、プロパティがカスタム日付のページと標準色のページを使用して設定できることをコンテナーに通知するために 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.

参照

概念

ATL COM プロパティ ページ

ATLPages サンプル