MFC – ovládací prvky ActiveX: Přístup k vedlejším vlastnostem
Tento článek popisuje přístup vlastnosti prostředí jeho kontejneru ovládacího prvku ActiveX.
Ovládací prvek umožňuje získat informace o jeho kontejneru pomocí přístupu k vlastnosti okolí kontejneru.Tyto vlastnosti poskytují vizuální vlastnosti, například barvu pozadí na kontejner aktuální písmo používá kontejner a provozní vlastnosti jako kontejner je aktuálně v režimu uživatele nebo návrháře.Ovládací prvek můžete použít vlastnosti prostředí přizpůsobit vzhled a chování určitého kontejneru, ve kterém je vložen.Však ovládací prvek by měl Nikdy nepředpokládejte, že jeho kontejneru bude podporovat jakékoli konkrétní vlastnost okolí.Některé kontejnery ve skutečnosti nemusí podporovat všechny vlastnosti prostředí vůbec.V případě neexistence okolí vlastnost ovládacího prvku považovat rozumné výchozí hodnoty.
Pro přístup k okolí vlastnosti se dovolat do COleControl::GetAmbientProperty.Tato funkce odeslání ID pro vlastnost okolí očekává jako první parametr (soubor OLECTL.H definuje pro standardní sadu vlastností okolního dispatch IDs).
Parametry GetAmbientProperty funkce je Identifikátor odeslání variant značky označující typ očekávané vlastnosti a ukazatel na paměti, kde by měla být vrácena hodnota.Typ dat, ke kterému se vztahuje tento ukazatel se liší v závislosti na značce varianty.Vrátí funkce TRUE -li kontejner podporuje vlastnost, v opačném případě vrátí FALSE.
Následující příklad kódu získává hodnotu okolí vlastnost nazvanou "Uvolnění". Pokud vlastnost není podporována v kontejneru, výchozí hodnota je TRUE se předpokládá:
BOOL bUserMode;
if(!GetAmbientProperty( DISPID_AMBIENT_USERMODE, VT_BOOL, &bUserMode))
bUserMode = TRUE;
Pro zvýšení pohodlí COleControl dodává pomocné funkce, které přístup k mnoha běžně používaných vlastností okolí a vrátit vlastnosti nejsou k dispozici vhodné výchozí nastavení.Tyto pomocné funkce jsou následující:
-
[!POZNÁMKA]
Musí volající (vydání) na vrácené písma.
Pokud se změní hodnota vlastnosti okolí (přes některé akce kontejneru), OnAmbientPropertyChanged členské funkce ovládacího prvku se nazývá.Přepište tuto členskou funkci pro zpracování takového oznámení.Parametr OnAmbientPropertyChanged je Identifikátor odeslání příslušné vlastnosti okolí.Hodnota tohoto odeslání ID může být DISPID_UNKNOWN, což znamená jednu nebo více vlastností okolního změnil, že informace o tom, které byly postiženy vlastnosti nejsou k dispozici.