Festlegen der Eigenschaftenseiten
Wenn Sie ein ActiveX-Steuerelement erstellen, sollten Sie es häufig Eigenschaftenseiten zuordnen, mit denen die Eigenschaften des Steuerelements festgelegt werden können. Steuerelementcontainer verwenden die ISpecifyPropertyPages
Schnittstelle, um herauszufinden, welche Eigenschaftenseiten zum Festlegen der Eigenschaften Ihres Steuerelements verwendet werden können. Sie müssen diese Schnittstelle auf Ihrem Steuerelement implementieren.
Führen Sie die folgenden Schritte aus, um die Verwendung von ATL zu implementieren ISpecifyPropertyPages
:
Leiten Sie Ihre Klasse von ISpecifyPropertyPagesImpl ab.
Fügen Sie einen Eintrag für
ISpecifyPropertyPages
die COM-Karte Ihrer Klasse hinzu.Fügen Sie der Eigenschaftenzuordnung für jede Seite, die Ihrem Steuerelement zugeordnet ist, einen PROP_PAGE Eintrag hinzu.
Hinweis
Beim Generieren eines Standardsteuerelements mithilfe des ATL-Steuerelement-Assistenten müssen Sie nur die PROP_PAGE Einträge zur Eigenschaftenzuordnung hinzufügen. Der Assistent generiert den erforderlichen Code für die anderen Schritte.
Gut verhaltene Container zeigen die angegebenen Eigenschaftenseiten in der gleichen Reihenfolge wie die PROP_PAGE Einträge in der Eigenschaftenzuordnung an. Im Allgemeinen sollten Sie standardeigenschaftenseiteneinträge nach den Einträgen für Ihre benutzerdefinierten Seiten in der Eigenschaftenzuordnung platzieren, sodass Benutzer zuerst die für Ihr Steuerelement spezifischen Seiten sehen.
Beispiel
Die folgende Klasse für ein Kalendersteuerelement verwendet die ISpecifyPropertyPages
Schnittstelle, um Containern mitzuteilen, dass ihre Eigenschaften mithilfe einer benutzerdefinierten Datumsseite und der Aktienfarbseite festgelegt werden können.
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.