Angeben von Eigenschaftenseiten
Wenn Sie ein ActiveX-Steuerelement erstellen, sollten Sie es häufig mit Eigenschaftenseiten zuordnen, die verwendet werden können, um die Eigenschaften des Steuerelements festzulegen.Steuerelementcontainer verwenden die ISpecifyPropertyPages-Schnittstelle, um zu ermitteln, die Eigenschaftenseiten verwendet werden können, um die Eigenschaften des Steuerelements festzulegen.Sie müssen diese Schnittstelle im Steuerelement implementieren.
Um ISpecifyPropertyPages mit ATL zu implementieren, müssen Sie die folgenden Schritte:
Leiten Sie die Klasse von ISpecifyPropertyPagesImpl.
Fügen Sie einen Eintrag für ISpecifyPropertyPages der COM-Zuordnung der Klasse hinzu.
Fügen Sie einen Eintrag PROP_PAGE der Eigenschaftenzuordnung für jede Seite hinzu, die dem Steuerelement zugeordnet ist.
Hinweis |
---|
Wenn Sie ein Standardsteuerelement mithilfe ATL-Steuerelement-Assistent generieren, müssen Sie nur die PROP_PAGE Einträge der Eigenschaftenzuordnung hinzufügen.Der Assistent generiert den erforderlichen Code für die anderen Schritte. |
Gut konzipierte Container zeigen die angegebenen Eigenschaftenseiten in derselben Reihenfolge, die die PROP_PAGE Einträge in der Eigenschaft zuordnen.Im Allgemeinen sollten Sie Standardeigenschaftenseiteneinträge nachdem die Einträge für Ihre benutzerdefinierten Seiten in die Eigenschaftenzuordnung einfügen, sodass die Seiten finden, die dem Steuerelement zuerst spezifisch sind.
Beispiel
Die folgende Klasse für ein Kalendersteuerelement verwendet die ISpecifyPropertyPages-Schnittstelle, um Containern mitzuteilen, dass seine Eigenschaften mit einer benutzerdefinierten Datumsseite und der vordefinierten Farbenseite 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.