MFC-ActiveX-Steuerelemente: Hinzufügen einer weiteren benutzerdefinierten Eigenschaftenseite
Gelegentlich verfügt ein ActiveX-Steuerelement über mehr Eigenschaften, als auf einer Eigenschaftenseite angemessen passen können. In diesem Fall können Sie dem ActiveX-Steuerelement Eigenschaftenseiten hinzufügen, um diese Eigenschaften anzuzeigen.
In diesem Artikel wird das Hinzufügen neuer Eigenschaftenseiten zu einem ActiveX-Steuerelement erläutert, das bereits über mindestens eine Eigenschaftenseite verfügt. Weitere Informationen zum Hinzufügen von Aktieneigenschaftenseiten (Schriftart, Bild oder Farbe) finden Sie im Artikel MFC ActiveX Controls: Using Stock Property Pages.For more information on adding stock property pages (font, picture, or color), see the article MFC ActiveX Controls: Using Stock Property Pages.
Die folgenden Verfahren verwenden ein Beispiel-ActiveX-Steuerelementframework, das vom ActiveX-Steuerelement-Assistenten erstellt wurde. Daher sind die Klassennamen und -bezeichner für dieses Beispiel eindeutig.
In den folgenden Artikeln finden Sie Details zur Verwendung von Eigenschaftenseiten in einem ActiveX-Steuerelement:
MFC-ActiveX-Steuerelemente: Verwenden von vordefinierten Eigenschaftenseiten
Hinweis
Es wird dringend empfohlen, dass neue Eigenschaftenseiten dem Größenstandard für ActiveX-Steuerelementeigenschaftenseiten entsprechen. Die Seiten für Die Bestandsbilder und Farbeigenschaften messen 250x62 Dialogeinheiten (DLU). Die Standardschriftart-Eigenschaftenseite ist 250x110 DLUs. Die vom ActiveX-Steuerelement-Assistenten erstellte Standardeigenschaftsseite verwendet den DLU-Standard 250x62.
So fügen Sie eine neue Eigenschaftenseitenvorlage in Ihr Projekt ein
Öffnen Sie beim geöffneten Steuerelementprojekt die Ressourcenansicht im Projektarbeitsbereich.
Klicken Sie mit der rechten Maustaste in der Ressourcenansicht, um das Kontextmenü zu öffnen, und klicken Sie auf "Ressource hinzufügen".
Erweitern Sie den Dialogfeldknoten , und wählen Sie IDD_OLE_PROPPAGE_SMALL aus.
Klicken Sie auf "Neu ", um die Ressource zu Ihrem Projekt hinzuzufügen.
Wählen Sie die neue Eigenschaftenseitenvorlage aus, um das Eigenschaftenfenster (in der Ressourcenansicht) zu aktualisieren.
Geben Sie einen neuen Wert für die ID-Eigenschaft ein. In diesem Beispiel wird IDD_PROPPAGE_NEWPAGE verwendet.
Klicken Sie in der Symbolleiste auf Speichern .
So ordnen Sie die neue Vorlage einer Klasse zu
Öffnen Sie die Klassenansicht.
Klicken Sie mit der rechten Maustaste in der Klassenansicht, um das Kontextmenü zu öffnen.
Klicken Sie im Kontextmenü auf Hinzufügen, und klicken Sie danach auf Klasse hinzufügen.
Daraufhin wird das Dialogfeld „Klasse hinzufügen“ geöffnet.
Doppelklicken Sie auf die MFC-Klassenvorlage .
Geben Sie im Feld "Klassenname" im MFC-Klassen-Assistenten einen Namen für die neue Dialogklasse ein. (In diesem Beispiel
CAddtlPropPage
.)Wenn Sie Dateinamen ändern möchten, klicken Sie auf "Ändern". Geben Sie die Namen für Ihre Implementierungs- und Headerdateien ein, oder übernehmen Sie die Standardnamen.
Wählen Sie im Feld "Basisklasse " die Option
COlePropertyPage
aus.Wählen Sie im Dialogfeld "ID" IDD_PROPPAGE_NEWPAGE aus.
Klicken Sie auf "Fertig stellen ", um die Klasse zu erstellen.
Um benutzern des Steuerelements den Zugriff auf diese neue Eigenschaftenseite zu ermöglichen, nehmen Sie die folgenden Änderungen am Eigenschaftenseiten-IDs-Makroabschnitt des Steuerelements vor (befindet sich in der Steuerelementimplementierungsdatei):
BEGIN_PROPPAGEIDS(CMyAxUICtrl, 2)
PROPPAGEID(CMyAxUIPropPage::guid)
PROPPAGEID(CAddtlPropPage::guid)
END_PROPPAGEIDS(CMyAxUICtrl)
Beachten Sie, dass Sie den zweiten Parameter des BEGIN_PROPPAGEIDS Makros (die Anzahl der Eigenschaftenseiten) von 1 auf 2 erhöhen müssen.
Sie müssen auch die Implementierungsdatei des Steuerelements ändern (. CPP)-Datei, die den Header (. H) Datei der neuen Eigenschaftenseitenklasse.
Im nächsten Schritt werden zwei neue Zeichenfolgenressourcen erstellt, die einen Typnamen und eine Untertitel für die neue Eigenschaftenseite bereitstellen.
So fügen Sie einer Eigenschaftenseite neue Zeichenfolgenressourcen hinzu
Öffnen Sie beim geöffneten Steuerelementprojekt die Ressourcenansicht.
Doppelklicken Sie auf den Ordner "Zeichenfolgentabelle ", und doppelklicken Sie dann auf die vorhandene Zeichenfolgentabellenressource, der Sie eine Zeichenfolge hinzufügen möchten.
Dadurch wird die Zeichenfolgentabelle in einem Fenster geöffnet.
Markieren Sie die leere Zeile am Ende der Zeichenfolgentabelle, und geben Sie den Text oder Untertitel der Zeichenfolge ein: z. B. "Zusätzliche Eigenschaftenseite".
Dadurch wird eine Seite "Zeichenfolgeneigenschaften " mit Beschriftungs - und ID-Feldern geöffnet. Das Feld "Beschriftung " enthält die eingegebene Zeichenfolge.
Wählen Sie im Feld "ID " eine ID für die Zeichenfolge aus, oder geben Sie sie ein. Drücken Sie die EINGABETASTE, wenn Sie fertig sind.
In diesem Beispiel wird IDS_SAMPLE_ADDPAGE für den Typnamen der neuen Eigenschaftenseite verwendet.
Wiederholen Sie die Schritte 3 und 4, indem Sie IDS_SAMPLE_ADDPPG_CAPTION für die ID und "Zusätzliche Eigenschaftenseite" für die Untertitel verwenden.
In der . Die CPP-Datei ihrer neuen Eigenschaftenseitenklasse (in diesem Beispiel) ändern Sie die
CAddtlPropPage::CAddtlPropPageFactory::UpdateRegistry
Eigenschaft so,CAddtlPropPage
dass IDS_SAMPLE_ADDPAGE von AfxOleRegisterPropertyPageClass übergeben wird, wie im folgenden Beispiel gezeigt:BOOL CAddtlPropPage::CAddtlPropPageFactory::UpdateRegistry(BOOL bRegister) { if (bRegister) return AfxOleRegisterPropertyPageClass(AfxGetInstanceHandle(), m_clsid, IDS_SAMPLE_ADDPAGE); else return AfxOleUnregisterClass(m_clsid, NULL); }
Ändern Sie den Konstruktor so, dass IDS_SAMPLE_ADDPPG_CAPTION wie folgt an den
COlePropertyPage
KonstruktorCAddtlPropPage
übergeben wird:CAddtlPropPage::CAddtlPropPage() : COlePropertyPage(IDD, IDS_SAMPLE_ADDPPG_CAPTION) { }
Nachdem Sie die erforderlichen Änderungen vorgenommen haben, erstellen Sie Ihr Projekt neu, und verwenden Sie den Testcontainer, um die neue Eigenschaftenseite zu testen. Informationen zum Zugriff auf den Testcontainer finden Sie unter Testen von Eigenschaften und Ereignissen mit dem Testcontainer .