MFC-ActiveX-Steuerelemente: Hinzufügen von vordefinierten Eigenschaften

Vordefinierte Eigenschaften unterscheiden sich von benutzerdefinierten Eigenschaften darin, dass sie bereits durch die Klasse COleControl implementiert werden.COleControl enthält vordefinierte Memberfunktionen, die allgemeine Eigenschaften für das Steuerelement unterstützen.Einige allgemeine Eigenschaften zählen die Beschriftung des Steuerelements und der Vordergrund- und Hintergrundfarben.Informationen über andere vordefinierte Eigenschaften finden Sie unter Vordefinierte Eigenschaften werden vom Assistenten zum Hinzufügen von Eigenschaften später in diesem Artikel.Die Dispatchzuordnungs Dateisystemeinträgen für vordefinierte Eigenschaften werden immer durch DISP_STOCKPROP vorangestellt.

In diesem Artikel wird beschrieben, wie eine Basiseigenschaft (in diesem Fall Beschriftung) einem ActiveX-Steuerelement mithilfe des Assistenten zum Hinzufügen von Eigenschaften hinzufügt und beschreibt die resultierenden Code geändert wird.Folgende Themen werden behandelt:

  • Verwenden des Assistenten zum Hinzufügen von Eigenschaften zum Hinzufügen einer vordefinierten Eigenschaft

  • Assistent zum Hinzufügen von Eigenschaftenen-Änderungen für vordefinierte Eigenschaften

  • Vordefinierte Eigenschaften werden vom Assistenten zum Hinzufügen von Eigenschaften

  • Vordefinierte Eigenschaften und Benachrichtigungen

  • Farbeigenschaften

    HinweisHinweis

    Benutzerdefinierte Steuerelemente von Visual Basic in der Regel verfügt über Eigenschaften wie Oben, Links, Breite, Höhe, Name, Tag, stimmt TabIndex, und Tabulation übergeordneten Elements ausgerichtet.ActiveX-Steuerelement-Container sind jedoch zum Implementieren dieser Eigenschaften von Steuerelementen zuständig. Daher sollten ActiveX-Steuerelemente diese Eigenschaften nicht unterstützen.

Verwenden des Assistenten zum Hinzufügen von Eigenschaften zum Hinzufügen einer vordefinierten Eigenschaft

Das Hinzufügen von vordefinierten Eigenschaften erfordert weniger Code als benutzerdefinierte Eigenschaften hinzufügen, da die Unterstützung für die Eigenschaft automatisch durch COleControl behandelt wird.Die folgende Prozedur veranschaulicht das Hinzufügen der vordefinierten Caption-Eigenschaft auf einen ActiveX-Steuerelement-Framework und kann auch verwendet werden, um andere vordefinierte Eigenschaften hinzuzufügen.Ersetzen Sie den ausgewählten vordefinierten Eigenschaftennamen für Beschriftung.

Um die Caption-Eigenschaft vordefinierte mit dem Assistenten zum Hinzufügen von Eigenschaften hinzufügen

  1. Laden Sie das Projekt des Steuerelements.

  2. Erweitern Sie in der Klassenansicht den Knoten Bibliothek des Steuerelements.

  3. Klicken Sie mit der rechten Maustaste auf den Knoten Schnittstellen für das Steuerelement (der zweite Knoten des Knotens Bibliothek), um das Kontextmenü zu öffnen.

  4. Klicken Sie im Kontextmenü auf Hinzufügen und klicken Sie dann auf Eigenschaft hinzufügen.

    Dadurch wird Assistent zum Hinzufügen von Eigenschaften.

  5. Im Feld Eigenschaftenname auf Beschriftung.

  6. Klicken Sie auf Fertig stellen.

Assistent zum Hinzufügen von Eigenschaftenen-Änderungen für vordefinierte Eigenschaften

Da COleControl vordefinierte Eigenschaften unterstützt, ändert der Assistent zum Hinzufügen von Eigenschaften nicht die Klassendeklaration in jeder Hinsicht. Es fügt die Dispatchzuordnung der Eigenschaft hinzu.Der Assistent zum Hinzufügen von Eigenschaften fügt die nächste Zeile der Dispatchzuordnung des Steuerelements hinzu, die in der Implementierungsdatei (.CPP) ist:

DISP_STOCKPROP_CAPTION()

In der folgenden Zeile wird in der Beschreibung der Schnittstellen des Steuerelements Datei (.IDL) hinzugefügt:

[id(DISPID_CAPTION), helpstring("property Caption")] BSTR Caption;

Diese Zeile wird der Caption-Eigenschaft einen bestimmten ID.Beachten Sie, dass die Eigenschaft bindungsfähig ist und Berechtigung von der Datenbank anfordern, bevor Sie den Wert ändern.

Dadurch wird die Caption-Eigenschaft Benutzer des Steuerelements verfügbar.Um den Wert einer vordefinierten Eigenschaft verwenden, greifen Sie eine Membervariable oder eine Memberfunktion der COleControl Basisklasse auf.Weitere Informationen zu dieser Membervariablen und Memberfunktionen, finden Sie im nächsten Abschnitt, auf Lager Eigenschaften, die vom Assistenten zum Hinzufügen von Eigenschaften unterstützt werden.

Klicken Sie auf Lager Sie die Eigenschaften, die vom Assistenten zum Hinzufügen von Eigenschaften unterstützt werden

Die COleControl-Klasse stellt neun vordefinierte Eigenschaften.Sie können die Eigenschaften hinzufügen, indem Sie den Assistenten zum Hinzufügen von Eigenschaften verwenden.

Eigenschaft

Eintrag Dispatchzuordnungs

Wie Wert zugreift

Darstellung

DISP_STOCKPROP_APPEARANCE ()

m_sAppearance zugreifbar als Wert.

BackColor

DISP_STOCKPROP_BACKCOLOR ()

Wert zugreifen durch Aufrufen von GetBackColor.

BorderStyle

DISP_STOCKPROP_BORDERSTYLE ()

m_sBorderStyle zugreifbar als Wert.

Beschriftung

DISP_STOCKPROP_CAPTION ()

Wert zugreifen durch Aufrufen von InternalGetText.

Aktiviert

DISP_STOCKPROP_ENABLED ()

m_bEnabled zugreifbar als Wert.

Schriftart

DISP_STOCKPROP_FONT ()

Weitere Informationen finden Sie im Artikel für die Verwendung MFC-ActiveX-Steuerelemente: Verwenden von Schriftarten.

ForeColor

DISP_STOCKPROP_FORECOLOR ()

Wert zugreifen durch Aufrufen von GetForeColor.

hWnd

DISP_STOCKPROP_HWND ()

m_hWnd zugreifbar als Wert.

Text

DISP_STOCKPROP_TEXT ()

Wert zugreifen durch Aufrufen von InternalGetText.Diese Eigenschaft ist identisch mit Beschriftung, außer dem Eigenschaftennamen.

ReadyState

DISP_STOCKPROP_READYSTATE ()

m_lReadyState zugreifbar als Wert oder GetReadyState

Vordefinierte Eigenschaften und Benachrichtigungen

Die meisten vordefinierten Eigenschaften verfügen Benachrichtigungsfunktionen, die überschrieben werden können.Zum Beispiel wenn die BackColor-Eigenschaft geändert wird, wird die OnBackColorChanged-Funktion (eine Memberfunktion der Steuerelementklasse) bezeichnet.Die Standardimplementierung (in COleControl) ruft InvalidateControl an.Überschreiben Sie diese Funktion, wenn Sie zusätzliche Aktionen als Reaktion auf diese Situation reagieren möchten.

Farbeigenschaften

Sie können vordefinierte ForeColor und die BackColor-Eigenschaften verwenden oder eigene benutzerdefinierte Farbeigenschaften, wenn Sie das Steuerelement zeichnen.Um eine Farbeigenschaft zu verwenden, rufen Sie die COleControl::TranslateColor-Memberfunktion auf.Die Parameter dieser Funktion wird der Wert der Eigenschaft Farbe und Paletten ein optionales behandelt.Der Rückgabewert ist ein COLORREF-Wert, der GDI-Funktionen, wie SetTextColor und CreateSolidBrush übergeben werden kann.

Die Farbwerte für vordefinierte ForeColor und die BackColor-Eigenschaften zugegriffen werden, indem entweder GetForeColor oder die Funktion GetBackColor-Parameters aufruft.

Im folgenden Beispiel wird die Verwendung dieser beiden Farbeigenschaften, wenn ein Steuerelement zeichnet.Er initialisiert eine temporäre COLORREF-Variablen und ein CBrush-Objekt mit Aufrufen von TranslateColor: Ein mit der ForeColor-Eigenschaft und das andere mithilfe der BackColor-Eigenschaft.Ein temporäres CBrush-Objekt wird dann verwendet, um das Rechteck des Steuerelements gezeichnet, und die Textfarbe wird mithilfe der ForeColor-Eigenschaft festgelegt.

CBrush bkBrush(TranslateColor(GetBackColor()));
COLORREF clrFore = TranslateColor(GetForeColor());
pdc->FillRect(rcBounds, &bkBrush);
pdc->SetTextColor(clrFore);
pdc->DrawText(InternalGetText(), -1, rcBounds, DT_SINGLELINE | DT_CENTER | DT_VCENTER);

Siehe auch

Referenz

COleControl-Klasse

Konzepte

MFC-ActiveX-Steuerelemente

MFC-ActiveX-Steuerelemente: Eigenschaften

MFC-ActiveX-Steuerelemente: Methoden