MFC-ActiveX-Steuerelemente: Hinzufügen von vordefinierten Eigenschaften
Vordefinierte Eigenschaften unterscheiden sich von benutzerdefinierten Eigenschaften darin, dass sie bereits von der COleControl
-Klasse implementiert wurden. COleControl
enthält vordefinierte Memberfunktionen, die gängige Eigenschaften für das Steuerelement unterstützen. Einige gängige Eigenschaften umfassen den Titel sowie die Vordergrund- und Hintergrundfarben. Weitere Informationen zu anderen vordefinierten Eigenschaften finden Sie im Abschnitt zu den vom Assistenten zum Hinzufügen von Eigenschaften unterstützten vordefinierten Eigenschaften in diesem Artikel. Den Dispatchzuordnungseinträgen für vordefinierte Eigenschaften wird immer „DISP_STOCKPROP“ vorangestellt.
In diesem Artikel wird beschrieben, wie Sie einem ActiveX-Steuerelement mithilfe des Assistenten zum Hinzufügen von Eigenschaften eine vordefinierte Eigenschaft (hier „Caption“) hinzufügen. Außerdem erfahren Sie mehr über die daraus resultierenden Codeänderungen. Dabei werden folgende Themen behandelt:
Änderungen des Assistenten zum Hinzufügen von Eigenschaften für vordefinierte Eigenschaften
Vom Assistenten zum Hinzufügen von Eigenschaften unterstützte vordefinierte Eigenschaften
-
Hinweis
Benutzerdefinierte Visual Basic-Steuerelemente verfügen in der Regel über Eigenschaften wie „Top“, „Left“, „Width“, „Height“, „Align“, „Tag“, „Name“, „TabIndex“, „TabStop“ und „Parent“. ActiveX-Steuerelementcontainer sind jedoch für die Implementierung dieser Steuerelementeigenschaften verantwortlich, weshalb ActiveX-Steuerelemente diese Eigenschaften nicht unterstützen sollten.
Verwenden des Assistenten zum Hinzufügen von Eigenschaften zum Hinzufügen einer vordefinierten Eigenschaft
Das Hinzufügen vordefinierter Eigenschaften erfordert weniger Code als das Hinzufügen benutzerdefinierter Eigenschaften, da die Unterstützung für die Eigenschaft automatisch von COleControl
verarbeitet wird. Mit der folgenden Prozedur wird das Hinzufügen der vordefinierten Caption-Eigenschaft zu einem ActiveX-Steuerelementframework veranschaulicht, und es können auch andere vordefinierte Eigenschaften hinzugefügt werden. Ersetzen Sie den Namen der ausgewählten vordefinierten Eigenschaft durch „Caption“.
Hinzufügen der vordefinierten Caption-Eigenschaft mithilfe des Assistenten zum Hinzufügen von Eigenschaften
Laden Sie das Steuerelementprojekt.
Erweitern Sie in der Klassenansicht den Bibliotheksknoten des Steuerelements.
Klicken Sie mit der rechten Maustaste auf den Schnittstellenknoten des Steuerelements (den zweiten Knoten des Bibliotheksknotens), um das Kontextmenü zu öffnen.
Klicken Sie im Kontextmenü auf Hinzufügen und dann auf Eigenschaft hinzufügen.
Dadurch wird der Assistent zum Hinzufügen von Eigenschaften geöffnet.
Wählen Sie im Feld Eigenschaftenname Caption aus.
Klicken Sie auf Fertig stellen.
Änderungen des Assistenten zum Hinzufügen von Eigenschaften für vordefinierte Eigenschaften
Da COleControl
vordefinierte Eigenschaften unterstützt, ändert der Assistent zum Hinzufügen von Eigenschaften die Klassendeklaration in keiner Weise. Die Eigenschaft wird der Dispatchzuordnung hinzugefügt. Der Assistent zum Hinzufügen von Eigenschaften fügt der Dispatchzuordnung des Steuerelements, die sich in der Implementierungsdatei (CPP-Datei) befindet, die folgende Zeile hinzu:
DISP_STOCKPROP_CAPTION()
Die folgende Zeile wird der Schnittstellenbeschreibungsdatei (IDL-Datei) für das Steuerelement hinzugefügt:
[id(DISPID_CAPTION), helpstring("property Caption")] BSTR Caption;
Diese Zeile weist der Caption-Eigenschaft eine bestimmte ID zu. Beachten Sie, dass es sich um eine bindbare Eigenschaft handelt, die vor dem Ändern des Werts die Berechtigung von der Datenbank anfordert.
Auf diese Weise wird die Caption-Eigenschaft für Benutzer*innen Ihres Steuerelements verfügbar. Greifen Sie auf eine Membervariable oder Memberfunktion der Basisklasse COleControl
zu, um den Wert einer vordefinierten Eigenschaft zu verwenden. Weitere Informationen zu diesen Membervariablen und -funktionen finden Sie im nächsten Abschnitt „Vom Assistenten zum Hinzufügen von Eigenschaften unterstützte vordefinierte Eigenschaften“.
Vom Assistenten zum Hinzufügen von Eigenschaften unterstützte vordefinierte Eigenschaften
Die COleControl
-Klasse bietet neun vordefinierte Eigenschaften. Sie können die gewünschten Eigenschaften mithilfe des Assistenten zum Hinzufügen von Eigenschaften hinzufügen.
Eigenschaft | Dispatchzuordnungseintrag | Zugreifen auf Werte |
---|---|---|
Appearance |
DISP_STOCKPROP_APPEARANCE( ) | Der Wert ist als m_sAppearance verfügbar. |
BackColor |
DISP_STOCKPROP_BACKCOLOR( ) | Wenn Sie GetBackColor aufrufen, wird der Wert verfügbar. |
BorderStyle |
DISP_STOCKPROP_BORDERSTYLE( ) | Der Wert ist als m_sBorderStyle verfügbar. |
Caption |
DISP_STOCKPROP_CAPTION( ) | Wenn Sie InternalGetText aufrufen, wird der Wert verfügbar. |
Enabled |
DISP_STOCKPROP_ENABLED( ) | Der Wert ist als m_bEnabled verfügbar. |
Font |
DISP_STOCKPROP_FONT( ) | Informationen zur Verwendung finden Sie im Artikel MFC-ActiveX-Steuerelemente: Verwenden von Schriftarten. |
ForeColor |
DISP_STOCKPROP_FORECOLOR( ) | Wenn Sie GetForeColor aufrufen, wird der Wert verfügbar. |
hWnd |
DISP_STOCKPROP_HWND( ) | Der Wert ist als m_hWnd verfügbar. |
Text |
DISP_STOCKPROP_TEXT( ) | Wenn Sie InternalGetText aufrufen, wird der Wert verfügbar. Diese Eigenschaft entspricht Caption mit Ausnahme des Eigenschaftennamens. |
ReadyState |
DISP_STOCKPROP_READYSTATE() | Der Wert ist als m_lReadyState oder GetReadyState verfügbar. |
Vordefinierte Eigenschaften und Benachrichtigungen
Die meisten vordefinierten Eigenschaften verfügen über Benachrichtigungsfunktionen, die außer Kraft gesetzt werden können. Immer wenn die Eigenschaft BackColor
geändert wird, wird beispielsweise die OnBackColorChanged
-Funktion (Memberfunktion der Steuerelementklasse) aufgerufen. Die Standardimplementierung (in COleControl
) ruft InvalidateControl
auf. Setzen Sie diesen Funktion außer Kraft, wenn Sie als Reaktion auf diese Situation zusätzliche Aktionen ausführen möchten.
Farbeigenschaften
Sie können die vordefinierten Eigenschaften ForeColor
und BackColor
oder Ihre eigenen benutzerdefinierten Farbeigenschaften verwenden, wenn Sie die Farbe des Steuerelements festlegen. Rufen Sie die Memberfunktion COleControl::TranslateColor auf, um eine Farbeigenschaft zu verwenden. Die Parameter dieser Funktion sind der Wert der Farbeigenschaft und ein optionaler Palettenhandle. Der Rückgabewert ist ein COLORREF-Wert, der an GDI-Funktionen wie SetTextColor
und CreateSolidBrush
übergeben werden kann.
Sie können auf die Farbwerte für die vordefinierten Eigenschaften ForeColor
und BackColor
zugreifen, indem Sie entweder die Funktion GetForeColor
oder die Funktion GetBackColor
aufrufen.
Das folgende Beispiel veranschaulicht die Verwendung dieser beiden Farbeigenschaften beim Festlegen der Farbe eines Steuerelements. Dabei wird eine temporäre COLORREF-Variable und ein CBrush
-Objekt mit Aufrufen von TranslateColor
instanziiert, wobei bei einem Aufruf die Eigenschaft ForeColor
und beim anderen die Eigenschaft BackColor
verwendet wird. Ein temporäres CBrush
-Objekt wird dann verwendet, um das Rechteck des Steuerelements zu zeichnen, und die Textfarbe wird unter Verwendung der Eigenschaft ForeColor
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 Controls (MFC-ActiveX-Steuerelemente)
MFC-ActiveX-Steuerelemente: Eigenschaften
MFC-ActiveX-Steuerelemente: Methoden
COleControl-Klasse