Share via


Controlli ActiveX MFC: accesso a proprietà di ambiente

Questo articolo illustra in che modo un controllo ActiveX può accedere alle proprietà di ambiente del contenitore di controllo.

Un controllo può ottenere informazioni sul relativo contenitore accedendo alle proprietà di ambiente del contenitore. Queste proprietà espongono caratteristiche visive, ad esempio il colore di sfondo del contenitore, il tipo di carattere corrente usato dal contenitore e le caratteristiche operative, ad esempio se il contenitore è attualmente in modalità utente o progettazione. Un controllo può usare le proprietà di ambiente per adattarne l'aspetto e il comportamento al contenitore specifico in cui è incorporato. Tuttavia, un controllo non deve mai presupporre che il relativo contenitore supporti una particolare proprietà di ambiente. Infatti, alcuni contenitori potrebbero non supportare alcuna proprietà di ambiente. In assenza di una proprietà di ambiente, un controllo deve presupporre un valore predefinito ragionevole.

Per accedere a una proprietà di ambiente, effettuare una chiamata a COleControl::GetAmbientProperty. Questa funzione prevede l'ID dispatch per la proprietà ambient come primo parametro (il file OLECTL. H definisce gli ID dispatch per il set standard di proprietà di ambiente.

I parametri della GetAmbientProperty funzione sono l'ID dispatch, un tag variant che indica il tipo di proprietà previsto e un puntatore alla memoria in cui deve essere restituito il valore. Il tipo di dati a cui fa riferimento questo puntatore varia a seconda del tag variant. La funzione restituisce TRUE se il contenitore supporta la proprietà , in caso contrario restituisce FAL edizione Standard.

Nell'esempio di codice seguente viene ottenuto il valore della proprietà di ambiente denominata "UserMode". Se la proprietà non è supportata dal contenitore, si presuppone un valore predefinito TRUE:

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

Per praticità, COleControl fornisce funzioni helper che accedono a molte delle proprietà di ambiente di uso comune e restituiscono impostazioni predefinite appropriate quando le proprietà non sono disponibili. Queste funzioni helper sono le seguenti:

Se il valore di una proprietà di ambiente cambia (tramite un'azione del contenitore), viene chiamata la OnAmbientPropertyChanged funzione membro del controllo. Eseguire l'override di questa funzione membro per gestire tale notifica. Il parametro per OnAmbientPropertyChanged è l'ID dispatch della proprietà di ambiente interessata. Il valore di questo ID di invio può essere DISPID_UNKNOWN, che indica che una o più proprietà di ambiente sono state modificate, ma le informazioni sulle proprietà interessate non sono disponibili.

Vedi anche

Controlli ActiveX MFC