Sdílet prostřednictvím


MFC – ovládací prvky ActiveX: Přístup k vedlejším vlastnostem

Tento článek popisuje, jak může ovládací prvek technologie ActiveX přistupovat k okolním vlastnostem kontejneru ovládacího prvku.

Ovládací prvek může získat informace o svém kontejneru přístupem k okolním vlastnostem kontejneru. Tyto vlastnosti zpřístupňují vizuální charakteristiky, jako je barva pozadí kontejneru, aktuální písmo používané kontejnerem a provozní charakteristiky, například jestli je kontejner aktuálně v uživatelském režimu nebo v režimu návrháře. Ovládací prvek může použít okolní vlastnosti k přizpůsobení vzhledu a chování konkrétního kontejneru, ve kterém je vložen. Ovládací prvek by však nikdy neměl předpokládat, že jeho kontejner bude podporovat jakoukoli konkrétní okolí vlastnost. Ve skutečnosti některé kontejnery nemusí podporovat žádné okolní vlastnosti vůbec. Při nepřítomnosti okolní vlastnosti by ovládací prvek měl předpokládat rozumnou výchozí hodnotu.

Chcete-li získat přístup k okolí vlastnost, proveďte volání COleControl::GetAmbientProperty. Tato funkce očekává ID odeslání pro okolní vlastnost jako první parametr (soubor OLECTL. H definuje ID dispečeru pro standardní sadu okolních vlastností).

Parametry GetAmbientProperty funkce jsou ID odeslání, značka varianty označující očekávaný typ vlastnosti a ukazatel na paměť, kde by se měla vrátit hodnota. Typ dat, na která tento ukazatel odkazuje, se bude lišit v závislosti na značce varianty. Funkce vrátí hodnotu TRUE , pokud kontejner podporuje vlastnost, jinak vrátí hodnotu FALSE.

Následující příklad kódu získá hodnotu okolí vlastnost s názvem "UserMode". Pokud kontejner vlastnost nepodporuje, předpokládá se výchozí hodnota TRUE :

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

Pro pohodlí poskytuje pomocné funkce, které přistupují k mnoha běžně používaným okolním vlastnostem, a vrací vhodné výchozí hodnoty, COleControl pokud nejsou vlastnosti k dispozici. Tyto pomocné funkce jsou následující:

Pokud se hodnota okolní vlastnosti změní (prostřednictvím určité akce kontejneru), OnAmbientPropertyChanged je volána členová funkce ovládacího prvku. Tuto členovou funkci přepište, aby takové oznámení zvládla. Parametr pro OnAmbientPropertyChanged je ID odeslání ovlivněné okolí vlastnosti. Hodnota tohoto ID odeslání může být DISPID_UNKNOWN, což značí, že došlo ke změně jedné nebo více okolních vlastností, ale informace o tom, které vlastnosti byly ovlivněny, nejsou k dispozici.

Viz také

MFC – ovládací prvky ActiveX