MFC-ActiveX-Steuerelemente: Zugreifen auf Ambient-Eigenschaften

In diesem Artikel wird erläutert, wie ein ActiveX-Steuerelement die Ambient-Eigenschaften des Steuerelementcontainers zugreifen kann.

Ein Steuerelement kann Informationen über dessen Container, indem die Ambient-Eigenschaften des Containers zugegriffen wird.Diese Eigenschaften verfügbar machen visuellen Eigenschaften, wie die Hintergrundfarbe des Containers, die aktuelle Schriftart, die vom Container verwendet werden, und Betriebseigenschaften, z. B. ob der Container derzeit im Benutzermodus Modus oder im Designer.Ein Steuerelement kann Ambient-Eigenschaften verwenden, um ihre Darstellung und das Verhalten auf den bestimmten Containers angepasst werden, in dem es enthalten ist.Es sollte ein Steuerelement niemals davon ausgehen, dass der Container eine bestimmte Ambient-Eigenschaft unterstützt.Tatsächlich unterstützen mehrere Container möglicherweise keine Ambient-Eigenschaften vorhanden.In Ermangelung einer Ambient-Eigenschaft sollte ein Steuerelement einen angemessenen Standardwert aufweisen.

So erstellen Sie eine Ambient-Eigenschaft zugreifen, können Sie COleControl::GetAmbientProperty einen Aufruf.Diese Funktion erwartet die Dispatchbezeichner für die Ambient-Eigenschaft als erster Parameter (die Datei definiert OLECTL.H Dispatch ID für den Standardsatz von Ambient-Eigenschaften).

Die Parameter der Funktion sind die GetAmbientProperty Dispatchbezeichner, ein variantes - Tag, das den erwarteten Eigenschaftentyp angeben und einen Zeiger auf den Speicher, in den der Wert zurückgegeben werden soll.Der Datentyp, in den der Zeiger verweist, variiert je nach varianten Tag.Die Funktion gibt TRUE zurück, wenn der Container die Eigenschaft unterstützt. Andernfalls gibt er FALSE zurück.

Das folgende Codebeispiel ruft den Wert der Ambient-Eigenschaft, die aufgerufen wird UserMode "." Wenn die Eigenschaft nicht vom Container unterstützt wird, wird der Standardwert TRUE ausgegangen:

BOOL bUserMode;
if(!GetAmbientProperty( DISPID_AMBIENT_USERMODE, VT_BOOL, &bUserMode))
   bUserMode = TRUE;

Für die Benutzerfreundlichkeit COleControl Zubehör hilfsfunktionen, die viele der häufig verwendeten Ambient-Eigenschaften sowie entsprechende Standardwerte zurückgeben, wenn die Eigenschaften nicht verfügbar sind.Diese Hilfsfunktionen stehen zur Verfügung:

Wenn der Wert der Ambient-Eigenschaft (durch eine Aktion) des Containers ändert, wird die OnAmbientPropertyChanged-Memberfunktion des Steuerelements aufgerufen.Überschreiben Sie diese Memberfunktion, um eine solche Benachrichtigung zu bearbeiten.Der Parameter für OnAmbientPropertyChanged ist die Dispatchbezeichner der betroffenen Ambient-Eigenschaft.Der Dispatchbezeichner ist dieser Wert möglicherweise DISPID_UNKNOWN, die angibt, dass eine oder mehrere Ambient-Eigenschaften geändert hat, aber Informationen über die betroffenen Eigenschaften ist nicht verfügbar.

Siehe auch

Konzepte

MFC-ActiveX-Steuerelemente