Freigeben über


MFC ActiveX-Steuerelemente: Hinzufügen von Aktieneigenschaften

Aktieneigenschaften unterscheiden sich von benutzerdefinierten Eigenschaften darin, dass sie bereits von der Klasse COleControlimplementiert werden. COleControl enthält vordefinierte Memberfunktionen, die allgemeine Eigenschaften für das Steuerelement unterstützen. Einige allgemeine Eigenschaften umfassen die Beschriftung des Steuerelements und die Vordergrund- und Hintergrundfarben. Informationen zu anderen Aktieneigenschaften finden Sie weiter unten in diesem Artikel unter " Aktieneigenschaften hinzufügen" . Die Verteilerzuordnungseinträge für Bestandseigenschaften werden immer durch DISP_STOCKPROP präfixiert.

In diesem Artikel wird beschrieben, wie Sie einem ActiveX-Steuerelement mithilfe des Assistenten zum Hinzufügen von Eigenschaften eine Aktieneigenschaft (in diesem Fall Caption) hinzufügen und die resultierenden Codeänderungen erläutern. Dabei werden folgende Themen behandelt:

Verwenden des Assistenten zum Hinzufügen einer Eigenschaft zum Hinzufügen einer Aktieneigenschaft

Das Hinzufügen von Bestandseigenschaften erfordert weniger Code als das Hinzufügen von benutzerdefinierten Eigenschaften, da die Unterstützung für die Eigenschaft automatisch behandelt COleControlwird. Das folgende Verfahren veranschaulicht das Hinzufügen der Eigenschaft "Stock Caption" zu einem ActiveX-Steuerelementframework und kann auch zum Hinzufügen anderer Aktieneigenschaften verwendet werden. Ersetzen Sie den namen der ausgewählten Aktieneigenschaft für Caption.

So fügen Sie die Stock Caption-Eigenschaft mithilfe des Assistenten zum Hinzufügen von Eigenschaften hinzu

  1. Laden Sie das Projekt Ihres Steuerelements.

  2. Erweitern Sie in der Klassenansicht den Bibliotheksknoten Ihres Steuerelements.

  3. Klicken Sie mit der rechten Maustaste auf den Schnittstellenknoten für Ihr Steuerelement (den zweiten Knoten des Bibliotheksknotens), um das Kontextmenü zu öffnen.

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

    Dadurch wird der Assistent zum Hinzufügen von Eigenschaften geöffnet.

  5. Klicken Sie im Feld "Eigenschaftsname " auf "Beschriftung".

  6. Klicken Sie auf Fertig stellen.

Hinzufügen von Eigenschaften-Assistentenänderungen für Aktieneigenschaften

Da COleControl Aktieneigenschaften unterstützt werden, ändert der Assistent zum Hinzufügen von Eigenschaften die Klassendeklaration nicht in irgendeiner Weise. Die Eigenschaft wird der Verteilerzuordnung hinzugefügt. Der Assistent zum Hinzufügen von Eigenschaften fügt die folgende Zeile zur Verteilerzuordnung des Steuerelements hinzu, das sich in der Implementierung befindet (. CPP)-Datei:

DISP_STOCKPROP_CAPTION()

Die folgende Zeile wird der Schnittstellenbeschreibung des Steuerelements hinzugefügt (. IDL)-Datei:

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

Diese Zeile weist der Caption-Eigenschaft eine bestimmte ID zu. Beachten Sie, dass die Eigenschaft gebunden werden kann und die Berechtigung der Datenbank anfordert, bevor Sie den Wert ändern.

Dadurch wird die Caption-Eigenschaft benutzern Ihres Steuerelements zur Verfügung gestellt. Um den Wert einer Aktieneigenschaft zu verwenden, greifen Sie auf eine Membervariable oder Memberfunktion der COleControl Basisklasse zu. Weitere Informationen zu diesen Membervariablen und Memberfunktionen finden Sie im nächsten Abschnitt: Aktieneigenschaften, die vom Assistenten zum Hinzufügen von Eigenschaften unterstützt werden.

Vom Assistenten zum Hinzufügen von Eigenschaften unterstützte Aktieneigenschaften

Die COleControl Klasse bietet neun Aktieneigenschaften. Sie können die gewünschten Eigenschaften mithilfe des Assistenten zum Hinzufügen von Eigenschaften hinzufügen.

Eigentum Verteilerkarteneintrag So greifen Sie auf wert zu
Appearance DISP_STOCKPROP_APPEARANCE( ) Auf den Wert zugegriffen werden kann als m_sAppearance.
BackColor DISP_STOCKPROP_BACKCOLOR( ) Durch Aufrufen von Werten GetBackColorzugegriffen werden kann.
BorderStyle DISP_STOCKPROP_BORDERSTYLE( ) Auf den Wert zugegriffen werden kann als m_sBorderStyle.
Caption DISP_STOCKPROP_CAPTION( ) Durch Aufrufen von Werten InternalGetTextzugegriffen werden kann.
Enabled DISP_STOCKPROP_ENABLED( ) Auf den Wert zugegriffen werden kann als m_bEnabled.
Font DISP_STOCKPROP_FONT( ) Weitere Informationen finden Sie im Artikel zu MFC ActiveX-Steuerelementen: Verwenden von Schriftarten für die Verwendung.
ForeColor DISP_STOCKPROP_FORECOLOR( ) Durch Aufrufen von Werten GetForeColorzugegriffen werden kann.
hWnd DISP_STOCKPROP_HWND( ) Auf den Wert zugegriffen werden kann als m_hWnd.
Text DISP_STOCKPROP_TEXT( ) Durch Aufrufen von Werten InternalGetTextzugegriffen werden kann. Diese Eigenschaft ist mit Ausnahme des Eigenschaftennamens identisch Caption.
ReadyState DISP_STOCKPROP_READYSTATE() Barrierefreier Wert als m_lReadyState oder GetReadyState

Aktieneigenschaften und Benachrichtigungen

Die meisten Aktieneigenschaften verfügen über Benachrichtigungsfunktionen, die überschrieben werden können. Wenn die BackColor Eigenschaft beispielsweise geändert wird, wird die OnBackColorChanged Funktion (eine Memberfunktion der Steuerelementklasse) aufgerufen. Die Standardimplementierung (in COleControl) ruft auf InvalidateControl. Überschreiben Sie diese Funktion, wenn Sie als Reaktion auf diese Situation zusätzliche Maßnahmen ergreifen möchten.

Farbeigenschaften

Sie können die Lagerbestände ForeColor und BackColor Eigenschaften oder ihre eigenen benutzerdefinierten Farbeigenschaften verwenden, wenn Sie das Steuerelement zeichnen. Rufen Sie die Memberfunktion "COleControl::TranslateColor " auf, um eine Farbeigenschaft zu verwenden. Die Parameter dieser Funktion sind der Wert der Farbeigenschaft und ein optionales Palettenhandle. Der Rückgabewert ist ein COLORREF-Wert , der an GDI-Funktionen übergeben werden kann, z SetTextColor . B. und CreateSolidBrush.

Auf die Farbwerte für die Aktien ForeColor und BackColor Eigenschaften wird durch Aufrufen der GetForeColor Funktion bzw. der GetBackColor Funktion zugegriffen.

Im folgenden Beispiel wird die Verwendung dieser beiden Farbeigenschaften beim Zeichnen eines Steuerelements veranschaulicht. Sie initialisiert eine temporäre COLORREF-Variable und ein CBrush Objekt mit Aufrufen von TranslateColor: einer mit der ForeColor Eigenschaft und dem anderen mit der BackColor Eigenschaft. Anschließend wird ein temporäres CBrush Objekt verwendet, um das Rechteck des Steuerelements zu zeichnen, 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

MFC ActiveX-Steuerelemente
MFC ActiveX-Steuerelemente: Eigenschaften
MFC ActiveX-Steuerelemente: Methoden
COleControl-Klasse