MFC-ActiveX-Steuerelemente: Hinzufügen einer weiteren benutzerdefinierten Eigenschaftenseite

Gelegentlich ist ein ActiveX-Steuerelement mehr Eigenschaften, als auf einer Eigenschaftenseite angemessen anpassen kann. In diesem Fall können Sie Eigenschaftenseiten dem ActiveX-Steuerelement hinzufügen, diese Eigenschaften anzuzeigen.

In diesem Artikel werden das Hinzufügen neuer Eigenschaftenseiten zu einem ActiveX-Steuerelement, das bereits mindestens eine Eigenschaftenseite hat. Weitere Informationen zum Hinzufügen vordefinierter Eigenschaftenseiten (Schriftart, Bild oder die Farbe), finden Sie im Artikel MFC-ActiveX-Steuerelemente: Verwenden vordefinierter Eigenschaftenseiten.

Die folgenden Verfahren ein Beispielactivex-steuerelement-Framework, das vom ActiveX-Steuerelement-Assistenten erstellt wird. Daher sind die Klassennamen und die Bezeichner zu diesem Beispiel eindeutig.

Weitere Informationen zur Verwendung von Eigenschaftenseiten in einem ActiveX-Steuerelement, finden Sie:

So fügen Sie eine neue Eigenschaftenseitenvorlage in Ihr Projekt einfügen

  1. Öffnen Sie das Steuerelementprojekt geöffnet, offene Ressourcenansicht in den Projektarbeitsbereich.

  2. Klicken Sie mit der rechten Maustaste in der Ressourcenansicht, um das Kontextmenü zu öffnen und auf Ressource hinzufügen zu klicken.

  3. Erweitern Sie den Knoten Dialogfeld, und wählen Sie IDD_OLE_PROPPAGE_SMALL aus.

  4. Klicken Sie auf New, um die Ressource dem Projekt hinzuzufügen.

  5. Wählen Sie die neue Eigenschaftenseitenvorlage aus, um das Eigenschaftenfenster zu aktualisieren.

  6. Geben Sie einen neuen Wert für die ID-Eigenschaft ein. In diesem Beispiel verwendet IDD_PROPPAGE_NEWPAGE.

  7. Klicken Sie in der Symbolleiste auf Speichern.

Um die neue Vorlage mit einer Klasse zuordnen

  1. Öffnen Sie die Klassenansicht.

  2. Klicken Sie mit der rechten Maustaste in der Klassenansicht, um das Kontextmenü zu öffnen.

  3. Klicken Sie im Kontextmenü zunächst auf Hinzufügen und dann auf Klasse hinzufügen.

    Dadurch wird das Dialogfeld Klasse hinzufügen.

  4. Doppelklicken Sie auf die MFC-Klasse Vorlage.

  5. Im Feld Klassenname in MFC-Klassen-Assistent, geben Sie einen Namen für die neue Dialogfeldklasse ein. (In diesem Beispiel, CAddtlPropPage).

  6. Wenn Sie Dateinamen ändern möchten, klicken Sie auf Ändern. Geben Sie die Namen für die Implementierung und Headerdateien ein, oder übernehmen Sie den Standardnamen.

  7. Im Feld Basisklasse die Option COlePropertyPage.

  8. Im Feld Dialogfeld-ID die Option IDD_PROPPAGE_NEWPAGE aus.

  9. Klicken Sie auf Fertig stellen , um die Klasse zu erstellen.

Um dem Benutzerzugriff des Steuerelements in dieser neuen Eigenschaftenseite zuzulassen, nehmen Sie die folgenden Änderungen am ID-Makroabschnitt die Eigenschaftenseite des Steuerelements vor (in der Steuerimplementierungsdatei):

BEGIN_PROPPAGEIDS(CMyAxUICtrl, 2)
   PROPPAGEID(CMyAxUIPropPage::guid)
   PROPPAGEID(CAddtlPropPage::guid)
END_PROPPAGEIDS(CMyAxUICtrl)

Beachten Sie, dass Sie den zweiten Parameter des BEGIN_PROPPAGEIDS-Makros (mit Eigenschaftenseitenanzahl) von 1 bis 2. erweitern müssen.

Sie müssen die Datei der Steuerimplementierungsdatei auch ändern (.CPP), um die Header einzuschließen (.H) Datei der neuen Eigenschaftenseitenklasse.

Der nächste Schritt, scrollen zwei Zeichenfolgenressourcen neue erstellen, die einen Typnamen und eine Beschriftung für die neue Seite bereitstellen.

So neuen Zeichenfolgenressourcen einer Eigenschaftenseite hinzufügen

  1. Öffnen Sie das Steuerelementprojekt geöffnet, offene Ressourcenansicht.

  2. Doppelklicken Sie auf den Ordner Zeichenfolgentabelle und doppelklicken Sie dann auf die vorhandene Zeichenfolgentabellenressource, der eine Zeichenfolge hinzufügen möchten.

    Dadurch wird die Zeichenfolgentabelle in einem Fenster.

  3. Wählen Sie die leere Zeile am Ende der Zeichenfolgentabelle aus und geben Sie den Text oder Beschriftung, die Zeichenfolge ein: beispielsweise "zusätzliche Eigenschaftenseite."

    In String Properties öffnet eine Seite, die Beschriftung und ID Felder angezeigt werden. Das Feld Beschriftung enthält die Zeichenfolge, die Sie eingegeben haben.

  4. Im Feld ID aktivieren oder geben Sie eine ID für die Zeichenfolge ein. Drücken Sie EINGABETASTE wenn Sie beenden.

    In diesem Beispiel verwendet IDS_SAMPLE_ADDPAGE für den Typnamen der neuen Eigenschaftenseite.

  5. Wiederholen Sie Schritte 3 und 4 mit IDS_SAMPLE_ADDPPG_CAPTION für die ID "und die zusätzliche Eigenschaftenseite" für den Titel.

  6. in der CPP-Datei der neuen Eigenschaftenseitenklasse (in diesem Beispiel CAddtlPropPage), ändern Sie CAddtlPropPage::CAddtlPropPageFactory::UpdateRegistry, damit IDS_SAMPLE_ADDPAGE von AfxOleRegisterPropertyPageClass übergeben wird, wie im folgenden Beispiel:

    BOOL CAddtlPropPage::CAddtlPropPageFactory::UpdateRegistry(BOOL bRegister)
    {
       if (bRegister)
          return AfxOleRegisterPropertyPageClass(AfxGetInstanceHandle(),
             m_clsid, IDS_SAMPLE_ADDPAGE);
       else 
          return AfxOleUnregisterClass(m_clsid, NULL);
    }
    
  7. Ändern Sie den Konstruktor von CAddtlPropPage, sodass IDS_SAMPLE_ADDPPG_CAPTION an COlePropertyPage-Konstruktor übergeben wird, wie folgt:

    CAddtlPropPage::CAddtlPropPage() :
       COlePropertyPage(IDD, IDS_SAMPLE_ADDPPG_CAPTION)
    {
    
    }
    

Nachdem Sie festgelegt haben, ergeben die notwendigen Änderungen das Projekt neu und verwenden Testcontainer, um die neue Eigenschaftenseite zu testen. Informationen zum Zugreifen auf den Testcontainer finden Sie unter Testen von Eigenschaften und Ereignissen mit dem Testcontainer.

Siehe auch

Konzepte

MFC-ActiveX-Steuerelemente