Sdílet prostřednictvím


COleControl – třída

Výkonná základní třída pro vývoj ovládacích prvků OLE.

Syntaxe

class COleControl : public CWnd

Členové

Veřejné konstruktory

Název Popis
COleControl::COleControl COleControl Vytvoří objekt.

Veřejné metody

Název Popis
COleControl::AmbientAppearance Načte aktuální vzhled ovládacího prvku.
COleControl::AmbientBackColor Vrátí hodnotu okolí BackColor vlastnost.
COleControl::AmbientDisplayName Vrátí název ovládacího prvku určený kontejnerem.
COleControl::AmbientFont Vrátí hodnotu okolí Font vlastnost.
COleControl::AmbientForeColor Vrátí hodnotu okolí ForeColor vlastnost.
COleControl::AmbientLocaleID Vrátí ID národního prostředí kontejneru.
COleControl::AmbientScaleUnits Vrátí typ jednotek, které kontejner používá.
COleControl::AmbientShowGrabHandles Určuje, jestli se mají zobrazit úchyty pro úchyty.
COleControl::AmbientShowHatching Určuje, zda se má zobrazit šrafování.
COleControl::AmbientTextAlign Vrátí typ zarovnání textu určeného kontejnerem.
COleControl::AmbientUIDead Určuje, jestli má ovládací prvek reagovat na akce uživatelského rozhraní.
COleControl::AmbientUserMode Určuje režim kontejneru.
COleControl::BoundPropertyChanged Upozorní kontejner, že došlo ke změně vázané vlastnosti.
COleControl::BoundPropertyRequestEdit Požaduje oprávnění k úpravě hodnoty vlastnosti.
COleControl::ClientToParent Přeloží bod relativní k počátku ovládacího prvku na bod vzhledem k jeho původu kontejneru.
COleControl::ClipCaretRect Upraví obdélník s stříškou, pokud se překrývá ovládacím prvku.
COleControl::ControlInfoChanged Volání této funkce po změně sady mnemonics zpracovávaných ovládacím prvku.
COleControl::D isplayError Zobrazí události chyby akcií pro uživatele ovládacího prvku.
COleControl::D oClick Implementace metody zásob DoClick .
COleControl::D oPropExchange Serializuje vlastnosti objektu COleControl .
COleControl::D oSuperclassPaint Překreslí ovládací prvek OLE, který byl podtříděn z ovládacího prvku Windows.
COleControl::EnableSimpleFrame Umožňuje jednoduchou podporu rámečku pro ovládací prvek.
COleControl::ExchangeExtent Serializuje šířku a výšku ovládacího prvku.
COleControl::ExchangeStockProps Serializuje vlastnosti akcií ovládacího prvku.
COleControl::ExchangeVersion Serializuje číslo verze ovládacího prvku.
COleControl::FireClick Vyhodí akci na skladě Click .
COleControl::FireDblClick Vyhodí akci na skladě DblClick .
COleControl::FireError Vyhodí akci na skladě Error .
COleControl::FireEvent Aktivuje vlastní událost.
COleControl::FireKeyDown Vyhodí akci na skladě KeyDown .
COleControl::FireKeyPress Vyhodí akci na skladě KeyPress .
COleControl::FireKeyUp Vyhodí akci na skladě KeyUp .
COleControl::FireMouseDown Vyhodí akci na skladě MouseDown .
COleControl::FireMouseMove Vyhodí akci na skladě MouseMove .
COleControl::FireMouseUp Vyhodí akci na skladě MouseUp .
COleControl::FireReadyStateChange Aktivuje událost, když se změní stav připraveného ovládacího prvku.
COleControl::GetActivationPolicy Změní výchozí chování aktivace ovládacího prvku, který podporuje IPointerInactive rozhraní.
COleControl::GetAmbientProperty Vrátí hodnotu zadané vlastnosti okolí.
COleControl::GetAppearance Vrátí hodnotu vlastnosti Vzhled akcie.
COleControl::GetBackColor Vrátí hodnotu stock BackColor vlastnost.
COleControl::GetBorderStyle Vrátí hodnotu stock BorderStyle vlastnost.
COleControl::GetCapture Určuje, zda má ovládací objekt bez oken aktivovaný řídicí objekt zachytávání myši.
COleControl::GetClassID Načte ID třídy OLE ovládacího prvku.
COleControl::GetClientOffset Načte rozdíl mezi levým horním rohem obdélníkové oblasti ovládacího prvku a levým horním rohem jeho klientské oblasti.
COleControl::GetClientRect Načte velikost klientské oblasti ovládacího prvku.
COleControl::GetClientSite Dotazuje objekt na ukazatel na aktuální klientskou lokalitu v rámci kontejneru.
COleControl::GetControlFlags Načte nastavení příznaku ovládacího prvku.
COleControl::GetControlSize Vrátí pozici a velikost ovládacího prvku OLE.
COleControl::GetDC Poskytuje způsob, jak získat kontext zařízení z kontejneru bez oken.
COleControl::GetEnabled Vrátí hodnotu vlastnosti s povolenou akcií.
COleControl::GetExtendedControl Načte ukazatel na objekt rozšířeného ovládacího prvku, který patří do kontejneru.
COleControl::GetFocus Určuje, zda má ovládací prvek fokus.
COleControl::GetFont Vrátí hodnotu vlastnosti Font stock.
COleControl::GetFontTextMetrics Vrátí metriky objektu CFontHolder .
COleControl::GetForeColor Vrátí hodnotu stock ForeColor vlastnost.
COleControl::GetHwnd Vrátí hodnotu vlastnosti stock hWnd.
COleControl::GetMessageString Poskytuje text stavového řádku pro položku nabídky.
COleControl::GetNotSupported Zabrání uživateli přístup k hodnotě vlastnosti ovládacího prvku.
COleControl::GetReadyState Vrátí stav připravenosti ovládacího prvku.
COleControl::GetRectInContainer Vrátí obdélník ovládacího prvku vzhledem k jeho kontejneru.
COleControl::GetStockTextMetrics Vrátí metriky vlastnosti Font akcie.
COleControl::GetText Vrátí hodnotu vlastnosti text nebo titulek akcie.
COleControl::GetWindowlessDropTarget Přepsání, které umožňuje, aby ovládací prvek bez oken byl cílem operací přetažení.
COleControl::InitializeIID Informuje základní třídu identifikátorů IID, které bude ovládací prvek používat.
COleControl::InternalGetFont CFontHolder Vrátí objekt pro vlastnost Font stock.
COleControl::InternalGetText Načte akciový titulek nebo vlastnost Text.
COleControl::InternalSetReadyState Nastaví stav připravenosti ovládacího prvku a aktivuje událost ready-state-change.
COleControl::InvalidateControl Zneplatní oblast zobrazeného ovládacího prvku, což způsobí jeho překreslení.
COleControl::InvalidateRgn Zneplatní oblast klienta okna kontejneru v dané oblasti. Lze použít k překreslení ovládacích prvků bez oken v oblasti.
COleControl::IsConvertingVBX Umožňuje specializované načítání ovládacího prvku OLE.
COleControl::IsModified Určuje, zda se změnil stav ovládacího prvku.
COleControl::IsOptimizedDraw Určuje, zda kontejner podporuje optimalizovaný výkres pro aktuální operaci výkresu.
COleControl::IsSubclassedControl Volá se k určení, zda ovládací prvek podtřídy ovládacího prvku Windows.
COleControl::Load Obnoví všechna předchozí asynchronní data a zahájí nové načtení asynchronní vlastnosti ovládacího prvku.
COleControl::LockInPlaceActive Určuje, jestli je možné ovládací prvek deaktivovat kontejnerem.
COleControl::OnAmbientPropertyChange Volá se při změně okolní vlastnosti.
COleControl::OnAppearanceChanged Volá se při změně vlastnosti Vzhled akcií.
COleControl::OnBackColorChanged Volána při akci BackColor vlastnost je změněna.
COleControl::OnBorderStyleChanged Volá se při změně stock BorderStyle vlastnost.
COleControl::OnClick Volali jsme, aby se aktivovalo akci Kliknutí na skladě.
COleControl::OnClose Upozorní ovládací prvek, který IOleControl::Close byl volána.
COleControl::OnDoVerb Volá se po spuštění řídicího příkazu.
COleControl::OnDraw Volá se při vyžádání ovládacího prvku k překreslení samotného.
COleControl::OnDrawMetafile Volá se kontejnerem, když je požadován ovládací prvek, aby se překreslil pomocí kontextu zařízení metasouboru.
COleControl::OnEdit Volá kontejner k aktivaci ovládacího prvku OLE v uživatelském rozhraní.
COleControl::OnEnabledChanged Volá se při změně vlastnosti s povolenou akcií.
COleControl::OnEnumVerbs Volá se kontejnerem k vytvoření výčtu sloves ovládacího prvku.
COleControl::OnEventAdvise Volá se, když jsou obslužné rutiny událostí připojené nebo odpojené od ovládacího prvku.
COleControl::OnFontChanged Volá se při změně vlastnosti Font stock.
COleControl::OnForeColorChanged Volána při akci ForeColor vlastnost je změněna.
COleControl::OnFreezeEvents Volá se, když se události ovládacího prvku zablokují nebo zruší.
COleControl::OnGetColorSet Upozorní ovládací prvek, který IOleObject::GetColorSet byl volána.
COleControl::OnGetControlInfo Poskytuje do kontejneru mnemnické informace.
COleControl::OnGetDisplayString Volá se k získání řetězce, který představuje hodnotu vlastnosti.
COleControl::OnGetInPlaceMenu Vyžádá si popisovač nabídky ovládacího prvku, která se sloučí s nabídkou kontejneru.
COleControl::OnGetNaturalExtent Přepsáním načtěte velikost zobrazení ovládacího prvku, která je nejblíže navrhované velikosti a ex režim stanu.
COleControl::OnGetPredefinedStrings Vrátí řetězce představující možné hodnoty vlastnosti.
COleControl::OnGetPredefinedValue Vrátí hodnotu odpovídající předdefinovanému řetězci.
COleControl::OnGetViewExtent Přepsání pro načtení velikosti zobrazovaných oblastí ovládacího prvku (lze použít k povolení dvousáhového výkresu).
COleControl::OnGetViewRect Přepište velikost ovládacího prvku na obdélník začínající na konkrétní pozici.
COleControl::OnGetViewStatus Přepsáním načtěte stav zobrazení ovládacího prvku.
COleControl::OnHideToolBars Volá se kontejnerem, když je ovládací prvek deaktivován uživatelským rozhraním.
COleControl::OnInactiveMouseMove Přepsat tak, aby byl kontejner neaktivního ovládacího prvku pod odesláním ukazatele myši WM_MOUSEMOVE zprávy do ovládacího prvku.
COleControl::OnInactiveSetCursor Přepsat tak, aby byl kontejner neaktivního ovládacího prvku pod odesláním ukazatele myši WM_SETCURSOR zprávy do ovládacího prvku.
COleControl::OnKeyDownEvent Volal se po akci KeyDownu, která byla aktivována.
COleControl::OnKeyPressEvent Volal se po akci KeyPress byla aktivována.
COleControl::OnKeyUpEvent Volal se poté, co se aktivovala událost KeyUp na skladě.
COleControl::OnMapPropertyToPage Určuje, která stránka vlastností se má použít k úpravě vlastnosti.
COleControl::OnMnemonic Volá se, když byl stisknut měmónní klávesa ovládacího prvku.
COleControl::OnProperties Volá se při vyvolání příkazu Vlastnosti ovládacího prvku.
COleControl::OnQueryHitPoint Přepište dotaz, jestli se zobrazení ovládacího prvku překrývají daný bod.
COleControl::OnQueryHitRect Přepište dotaz, zda se zobrazení ovládacího prvku překrývají libovolný bod v daném obdélníku.
COleControl::OnRenderData Volá se rozhraním pro načtení dat v zadaném formátu.
COleControl::OnRenderFileData Volá se rozhraním pro načtení dat ze souboru v zadaném formátu.
COleControl::OnRenderGlobalData Volá se rozhraním pro načtení dat z globální paměti v zadaném formátu.
COleControl::OnResetState Obnoví vlastnosti ovládacího prvku na výchozí hodnoty.
COleControl::OnSetClientSite Upozorní ovládací prvek, který IOleControl::SetClientSite byl volána.
COleControl::OnSetData Nahradí data ovládacího prvku jinou hodnotou.
COleControl::OnSetExtent Volá se po změně rozsahu ovládacího prvku.
COleControl::OnSetObjectRects Volá se po změně dimenzí ovládacího prvku.
COleControl::OnShowToolBars Volá se při aktivaci ovládacího prvku ui.
COleControl::OnTextChanged Volá se při změně vlastnosti text nebo titulek akcie.
COleControl::OnWindowlessMessage Zpracovává zprávy oken (jiné než zprávy myši a klávesnice) pro ovládací prvky bez oken.
COleControl::P arentToClient Přeloží bod vzhledem k počátku kontejneru na bod vzhledem k počátku ovládacího prvku.
COleControl::P ostModalDialog Upozorní kontejner, že bylo zavřené modální dialogové okno.
COleControl::P reModalDialog Upozorní kontejner, že se bude zobrazovat modální dialogové okno.
COleControl::RecreateControlWindow Zničí a znovu vytvoří okno ovládacího prvku.
COleControl::Refresh Vynutí překreslení vzhledu ovládacího prvku.
COleControl::ReleaseCapture Uvolní zachytávání myší.
COleControl::ReleaseDC Uvolní kontext zařízení pro zobrazení kontejneru ovládacího prvku bez oken.
COleControl::ReparentControlWindow Obnoví nadřazený prvek ovládacího okna.
COleControl::ResetStockProps Inicializuje COleControl vlastnosti akcií na výchozí hodnoty.
COleControl::ResetVersion Inicializuje číslo verze na danou hodnotu.
COleControl::ScrollWindow Umožňuje ovládacímu prvku bez oken posunout oblast v jeho aktivním obrázku na místě na displeji.
COleControl::SelectFontObject Vybere vlastní vlastnost Písmo do kontextu zařízení.
COleControl::SelectStockFont Vybere vlastnost Font stock do kontextu zařízení.
COleControl::SerializeExtent Serializuje nebo inicializuje místo pro zobrazení ovládacího prvku.
COleControl::SerializeStockProps Serializuje nebo inicializuje COleControl vlastnosti akcie.
COleControl::SerializeVersion Serializuje nebo inicializuje informace o verzi ovládacího prvku.
COleControl::SetAppearance Nastaví hodnotu vlastnosti Vzhled akcie.
COleControl::SetBackColor Nastaví hodnotu stock BackColor vlastnost.
COleControl::SetBorderStyle Nastaví hodnotu stock BorderStyle vlastnost.
COleControl::SetCapture Způsobí, že okno kontejneru ovládacího prvku převezme za něj zachycení myši.
COleControl::SetControlSize Nastaví umístění a velikost ovládacího prvku OLE.
COleControl::SetEnabled Nastaví hodnotu vlastnosti s povolenou akcií.
COleControl::SetFocus Způsobí, že okno kontejneru ovládacího prvku převezme vstupní fokus na jménem ovládacího prvku.
COleControl::SetFont Nastaví hodnotu vlastnosti Font stock.
COleControl::SetForeColor Nastaví hodnotu stock ForeColor vlastnost.
COleControl::SetInitialSize Nastaví velikost ovládacího prvku OLE při prvním zobrazení v kontejneru.
COleControl::SetModifiedFlag Změní změněný stav ovládacího prvku.
COleControl::SetNotPermitted Označuje, že žádost o úpravu selhala.
COleControl::SetNotSupported Zabrání úpravám hodnoty vlastnosti ovládacího prvku uživatelem.
COleControl::SetRectInContainer Nastaví obdélník ovládacího prvku vzhledem k jeho kontejneru.
COleControl::SetText Nastaví hodnotu vlastnosti Text nebo Titulek akcie.
COleControl::ThrowError Signály, že došlo k chybě v ovládacím prvku OLE.
COleControl::TransformCoords Transformuje hodnoty souřadnic mezi kontejnerem a ovládacím prvku.
COleControl::TranslateColor Převede hodnotu OLE_COLOR na hodnotu COLORREF.
COleControl::WillAmbientsBeValidDuringLoad Určuje, zda budou okolní vlastnosti k dispozici při příštím načtení ovládacího prvku.
COleControl::WindowProc Poskytuje proceduru systému Windows pro COleControl objekt.

Chráněné metody

Název Popis
COleControl::D rawContent Volá se rozhraním, když je potřeba aktualizovat vzhled ovládacího prvku.
COleControl::D rawMetafile Volá se rozhraním při použití kontextu zařízení metasouboru.
COleControl::IsInvokeAllowed Povolí vyvolání metody automatizace.
COleControl::SetInitialDataFormats Volá se rozhraním pro inicializaci seznamu formátů dat podporovaných ovládacím prvku.

Poznámky

Odvozeno z CWnd, tato třída dědí všechny funkce objektu okna Systému Windows a další funkce specifické pro OLE, jako je například aktivace událostí a schopnost podporovat metody a vlastnosti.

Ovládací prvky OLE lze vložit do aplikací kontejneru OLE a komunikovat s kontejnerem pomocí obousměrného systému spuštění a zveřejnění metod a vlastností kontejneru. Všimněte si, že standardní kontejnery OLE podporují pouze základní funkce ovládacího prvku OLE. Nemůžou podporovat rozšířené funkce ovládacího prvku OLE. K aktivaci události dochází, když se události odesílají do kontejneru v důsledku určitých akcí, které se v ovládacím prvku provádějí. Kontejner pak komunikuje s ovládacím prvek pomocí vystavené sady metod a vlastností analogických pro členské funkce a datové členy třídy C++. Tento přístup umožňuje vývojáři řídit vzhled ovládacího prvku a upozornit kontejner, když dojde k určitým akcím.

Ovládací prvky bez oken

Ovládací prvky OLE lze použít na místě aktivní bez okna. Ovládací prvky bez oken mají významné výhody:

  • Ovládací prvky bez oken můžou být průhledné a ne obdélníkové.

  • Ovládací prvky bez oken snižují velikost instance a čas vytvoření objektu.

Ovládací prvky nepotřebují okno. Služby, které nabízí okno, se dají snadno poskytovat prostřednictvím jednoho sdíleného okna (obvykle kontejneru) a určitou část kódu pro odesílání. Okno je většinou zbytečnou komplikací objektu.

Při použití aktivace bez oken zodpovídá kontejner (který má okno) za poskytování služeb, které by jinak poskytlo vlastní okno ovládacího prvku. Pokud například váš ovládací prvek potřebuje dotazovat fokus klávesnice, dotazovat se na zachycení myši nebo získat kontext zařízení, tyto operace se spravují kontejnerem. Členské COleControl funkce bez oken volají tyto operace v kontejneru.

Pokud je povolená aktivace bez oken, kontejner deleguje vstupní zprávy do rozhraní ovládacího prvku IOleInPlaceObjectWindowless (rozšíření IOleInPlaceObject pro podporu bez oken). COleControlImplementace tohoto rozhraní bude tyto zprávy odesílat prostřednictvím mapy zpráv vašeho ovládacího prvku po správné úpravě souřadnic myši. Tyto zprávy můžete zpracovávat jako běžné zprávy oken přidáním odpovídajících položek do mapy zpráv.

V ovládacím prvku bez oken byste měli vždy používat COleControl členské funkce místo odpovídajících CWnd členských funkcí nebo jejich souvisejících funkcí rozhraní API systému Windows.

Ovládací objekty OLE mohou také vytvořit okno pouze v případě, že se stanou aktivními, ale množství práce potřebné pro neaktivní aktivní přechod se zrychlí a rychlost přechodu se snižuje. Existují případy, kdy se jedná o problém: jako příklad zvažte mřížku textových polí. Při kurzoru nahoru a dolů ve sloupci musí být každý ovládací prvek aktivovaný a pak deaktivovaný. Rychlost neaktivního nebo aktivního přechodu přímo ovlivní rychlost posouvání.

Další informace o vývoji architektury ovládacích prvků OLE naleznete v článcích MFC Ovládací prvky ActiveX a přehled: Vytvoření programu ovládacích prvků ActiveX MFC. Informace o optimalizaci ovládacích prvků OLE, včetně ovládacích prvků bez oken a blikajících ovládacích prvků, naleznete v tématu MFC – ovládací prvky ActiveX: Optimalizace.

Hierarchie dědičnosti

Objekt CObject

CCmdTarget

CWnd

COleControl

Požadavky

Záhlaví: afxctl.h

COleControl::AmbientBackColor

Vrátí hodnotu okolí BackColor vlastnost.

OLE_COLOR AmbientBackColor();

Návratová hodnota

Aktuální hodnota okolí BackColor kontejner vlastnost, pokud existuje. Pokud tato vlastnost není podporovaná, vrátí tato funkce systémově definovanou barvu pozadí Windows.

Poznámky

Okolí BackColor vlastnost je k dispozici pro všechny ovládací prvky a je definována kontejnerem. Mějte na paměti, že kontejner není nutný k podpoře této vlastnosti.

COleControl::AmbientDisplayName

Název, který má kontejner přiřazený k ovládacímu prvku, lze použít v chybových zprávách zobrazených uživateli.

CString AmbientDisplayName();

Návratová hodnota

Název ovládacího prvku OLE. Výchozí hodnota je řetězec nulové délky.

Poznámky

Mějte na paměti, že kontejner není nutný k podpoře této vlastnosti.

COleControl::AmbientFont

Vrátí hodnotu okolí Font vlastnost.

LPFONTDISP AmbientFont();

Návratová hodnota

Ukazatel na okolí rozhraní pro odeslání písma kontejneru. Výchozí hodnota je NULL. Pokud se vrácení nerovná hodnotě NULL, zodpovídáte za uvolnění písma voláním jeho členské funkce IUnknown::Release .

Poznámky

Okolí Font vlastnost je definována kontejnerem a k dispozici pro všechny ovládací prvky. Mějte na paměti, že kontejner není nutný k podpoře této vlastnosti.

COleControl::AmbientForeColor

Vrátí hodnotu okolí ForeColor vlastnost.

OLE_COLOR AmbientForeColor();

Návratová hodnota

Aktuální hodnota okolí kontejneru ForeColor vlastnost, pokud je k dispozici. Pokud tato funkce není podporovaná, vrátí systémově definovanou barvu textu Windows.

Poznámky

Okolí ForeColor vlastnost je k dispozici pro všechny ovládací prvky a je definována kontejnerem. Mějte na paměti, že kontejner není nutný k podpoře této vlastnosti.

COleControl::AmbientLocaleID

Vrátí ID národního prostředí kontejneru.

LCID AmbientLocaleID();

Návratová hodnota

Hodnota vlastnosti LocaleID kontejneru, pokud existuje. Pokud tato vlastnost není podporována, vrátí tato funkce hodnotu 0.

Poznámky

Ovládací prvek může použít localeID k přizpůsobení uživatelského rozhraní pro konkrétní národní prostředí. Mějte na paměti, že kontejner není nutný k podpoře této vlastnosti.

COleControl::AmbientAppearance

Načte aktuální nastavení vzhledu objektu ovládacího prvku.

short AmbientAppearance();

Návratová hodnota

Vzhled ovládacího prvku:

  • 0 Plochý vzhled

  • 1 3D vzhled

Poznámky

Voláním této funkce načtěte aktuální hodnotu vlastnosti DISPID_AMBIENT_APPEARANCE ovládacího prvku.

COleControl::AmbientScaleUnits

Vrátí typ jednotek, které kontejner používá.

CString AmbientScaleUnits();

Návratová hodnota

Řetězec obsahující okolí ScaleUnits kontejneru. Pokud tato vlastnost není podporována, vrátí tato funkce řetězec nulové délky.

Poznámky

Vlastnost Ambient ScaleUnits kontejneru lze použít k zobrazení pozic nebo rozměrů označených zvolenou jednotkou, jako jsou twips nebo centimetry. Mějte na paměti, že kontejner není nutný k podpoře této vlastnosti.

COleControl::AmbientShowGrabHandles

Určuje, zda kontejner umožňuje ovládacímu prvku zobrazit úchyty pro sebe, když je aktivní.

BOOL AmbientShowGrabHandles();

Návratová hodnota

Nenulové, pokud by měly být zobrazeny úchyty; jinak 0. Pokud tato vlastnost není podporovaná, vrátí tato funkce nenulovou hodnotu.

Poznámky

Mějte na paměti, že kontejner není nutný k podpoře této vlastnosti.

COleControl::AmbientShowHatching

Určuje, zda kontejner umožňuje, aby se ovládací prvek zobrazoval s šrafovaným vzorem, když je aktivní uživatelské rozhraní.

BOOL AmbientShowHatching();

Návratová hodnota

Nenulové, pokud by měl být zobrazen šrafovaný vzor; jinak 0. Pokud tato vlastnost není podporovaná, vrátí tato funkce nenulovou hodnotu.

Poznámky

Mějte na paměti, že kontejner není nutný k podpoře této vlastnosti.

COleControl::AmbientTextAlign

Určuje zarovnání okolního textu upřednostňované kontejnerem ovládacího prvku.

short AmbientTextAlign();

Návratová hodnota

Stav okolí TextAlign kontejneru vlastnost. Pokud tato vlastnost není podporována, vrátí tato funkce hodnotu 0.

Následuje seznam platných vrácených hodnot:

Vrácená hodnota Význam
0 Obecné zarovnání (čísla doprava, text doleva).
0 Zarovnání doleva
2 Na střed
3 Zarovnání doprava

Poznámky

Tato vlastnost je k dispozici pro všechny vložené ovládací prvky a je definována kontejnerem. Mějte na paměti, že kontejner není nutný k podpoře této vlastnosti.

COleControl::AmbientUIDead

Určuje, jestli kontejner chce, aby ovládací prvek reagoval na akce uživatelského rozhraní.

BOOL AmbientUIDead();

Návratová hodnota

Nenulové, pokud by ovládací prvek měl reagovat na akce uživatelského rozhraní; jinak 0. Pokud tato vlastnost není podporována, vrátí tato funkce hodnotu 0.

Poznámky

Kontejner může například nastavit hodnotu TRUE v režimu návrhu.

COleControl::AmbientUserMode

Určuje, jestli je kontejner v režimu návrhu nebo v uživatelském režimu.

BOOL AmbientUserMode();

Návratová hodnota

Nenulové, pokud je kontejner v uživatelském režimu; jinak 0 (v režimu návrhu). Pokud tato vlastnost není podporována, vrátí tato funkce hodnotu TRUE.

Poznámky

Kontejner může například nastavit hodnotu FALSE v režimu návrhu.

COleControl::BoundPropertyChanged

Signály, že se změnila hodnota vázané vlastnosti.

void BoundPropertyChanged(DISPID dispid);

Parametry

dispid
ID odeslání vázané vlastnosti ovládacího prvku.

Poznámky

Tato hodnota se musí volat při každé změně hodnoty vlastnosti, a to i v případech, kdy změna nebyla provedena prostřednictvím metody Set vlastnosti. Mějte na paměti zejména vázané vlastnosti, které jsou mapovány na členské proměnné. Kdykoli se taková členová proměnná změní, BoundPropertyChanged musí být volána.

COleControl::BoundPropertyRequestEdit

Požaduje oprávnění z IPropertyNotifySink rozhraní ke změně hodnoty vázané vlastnosti poskytnuté ovládacím prvku.

BOOL BoundPropertyRequestEdit(DISPID dispid);

Parametry

dispid
ID odeslání vázané vlastnosti ovládacího prvku.

Návratová hodnota

Nenulové, pokud je změna povolena; jinak 0. Výchozí hodnota je nenulová.

Poznámky

Pokud je oprávnění odepřeno, ovládací prvek nesmí nechat hodnotu vlastnosti změnit. To lze provést ignorováním nebo selháním akce, která se pokusila změnit hodnotu vlastnosti.

COleControl::ClientToParent

Přeloží souřadnice pPointu na nadřazené souřadnice.

virtual void ClientToParent(
    LPCRECT lprcBounds,
    LPPOINT pPoint) const;

Parametry

lprcBounds
Ukazatel na hranice ovládacího prvku OLE v kontejneru. Ne klientská oblast, ale oblast celého ovládacího prvku včetně ohraničení a posuvníků.

pPoint
Ukazatel na bod klienta OLE, který se má přeložit do souřadnic nadřazeného objektu (kontejneru).

Poznámky

Při vstupu pPoint je relativní vzhledem k počátku klientské oblasti ovládacího prvku OLE (horní levý roh klientské oblasti ovládacího prvku). Na výstupním pPointu je relativní původ nadřazeného objektu (levý horní roh kontejneru).

COleControl::ClipCaretRect

Upraví obdélník s stříškou, pokud je zcela nebo částečně pokrytý překrývajícími se neprůhlhlými objekty.

BOOL ClipCaretRect(LPRECT lpRect);

Parametry

lpRect
Na vstupu je ukazatel na strukturu RECT , která obsahuje stříšku, která se má upravit. Při výstupu je upravená stříška nebo NULL, pokud je obdélník stříšky zcela pokrytý.

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

Poznámky

Stříškou je blikající čára, blok nebo rastrový obrázek, který obvykle označuje, kam se vloží text nebo grafika.

Objekt bez oken nemůže bezpečně zobrazit stříšku bez kontroly, zda je stříška částečně nebo zcela skrytá překrývajícími se objekty. Aby to bylo možné, může objekt použít ClipCaretRect k úpravě stříšky (zmenšené), aby se zajistilo, že se vejde do oblasti výřezu.

Objekty, které vytvářejí stříšku, by měly odeslat obdélník ClipCaretRect stříšky a použít upravený obdélník pro stříšku. Pokud je stříška zcela skrytá, tato metoda vrátí hodnotu NEPRAVDA a v tomto případě by se v tomto případě neměla zobrazovat stříška.

COleControl::COleControl

COleControl Vytvoří objekt.

COleControl();

Poznámky

Tato funkce se obvykle nevolá přímo. Místo toho je ovládací prvek OLE obvykle vytvořen jeho objekt pro vytváření tříd.

COleControl::ControlInfoChanged

Volání této funkce, když se změnila sada mnemonics podporovaných ovládacím prvku.

void ControlInfoChanged();

Poznámky

Při přijetí tohoto oznámení získá kontejner ovládacího prvku novou sadu mnemonics provedením volání IOleControl::GetControlInfo. Mějte na paměti, že kontejner není nutný k odpovídání na toto oznámení.

COleControl::D isplayError

Volané rozhraním po zpracování události Stock Error (pokud obslužná rutina události nepotlačí zobrazení chyby).

virtual void DisplayError(
    SCODE scode,
    LPCTSTR lpszDescription,
    LPCTSTR lpszSource,
    LPCTSTR lpszHelpFile,
    UINT nHelpID);

Parametry

scode
Hodnota stavového kódu, která se má hlásit. Úplný seznam možných kódů najdete v článku Ovládací prvky ActiveX: Pokročilá témata.

lpszDescription
Popis nahlášené chyby.

lpszSource
Název modulu, který generuje chybu (obvykle název řídicího modulu OLE).

lpszHelpFile
Název souboru nápovědy obsahující popis chyby.

nHelpID
ID kontextu nápovědy nahlášené chyby.

Poznámky

Ve výchozím chování se zobrazí okno se zprávou obsahující popis chyby, která je obsažena v popisu lpszDescription.

Přepište tuto funkci, abyste přizpůsobili způsob zobrazení chyb.

COleControl::D oClick

Simuluje akci kliknutí myší na ovládací prvek.

void DoClick();

Poznámky

Bude volána přepsatelná členská COleControl::OnClick funkce a v případě podpory ovládacího prvku se aktivuje událost kliknutí na skladě.

Tato funkce je podporována COleControl základní třídou jako burzovní metoda s názvem DoClick. Další informace najdete v článku Ovládací prvky ActiveX: Metody.

COleControl::D oPropExchange

Volá se rozhraním při načítání nebo ukládání ovládacího prvku z trvalé reprezentace úložiště, například datového proudu nebo sady vlastností.

virtual void DoPropExchange(CPropExchange* pPX);

Parametry

pPX
Ukazatel na CPropExchange objekt. Architektura poskytuje tento objekt k navázání kontextu výměny vlastností, včetně jeho směru.

Poznámky

Tato funkce obvykle volá PX_ řadu funkcí k načtení nebo uložení konkrétních uživatelsky definovaných vlastností ovládacího prvku OLE.

Pokud byl průvodce ovládacími prvky použit k vytvoření projektu ovládacího prvku OLE, přepsaná verze této funkce serializuje stock vlastnosti podporované COleControl voláním základní třídy funkce, COleControl::DoPropExchange. Když do ovládacího prvku OLE přidáte uživatelem definované vlastnosti, budete muset tuto funkci upravit, aby serializovala nové vlastnosti. Další informace o serializaci naleznete v článku Ovládací prvky ActiveX: Serializace.

COleControl::D oSuperclassPaint

Překreslí ovládací prvek OLE, který byl podtříděn z ovládacího prvku Windows.

void DoSuperclassPaint(
    CDC* pDC,
    const CRect& rcBounds);

Parametry

pDC
Ukazatel na kontext zařízení kontejneru ovládacího prvku.

RcBounds
Oblast, ve které má být ovládací prvek nakreslen.

Poznámky

Voláním této funkce lze správně zpracovat obraz neaktivního ovládacího prvku OLE. Tato funkce by měla být použita pouze v případě, že ovládací prvek OLE podtřídy ovládací prvek Windows a měl by být volán ve OnDraw funkci vašeho ovládacího prvku.

Další informace o této funkci a podtřídě ovládacího prvku Windows naleznete v článku Ovládací prvky ActiveX: Podtřídy ovládacího prvku Windows.

COleControl::D rawContent

Volá se rozhraním, když je potřeba aktualizovat vzhled ovládacího prvku.

void DrawContent(
    CDC* pDC,
    CRect& rc);

Parametry

pDC
Ukazatel na kontext zařízení.

Rc
Obdélníková plocha, do které se má nakreslit.

Poznámky

Tato funkce přímo volá přepisovatelnou OnDraw funkci.

COleControl::D rawMetafile

Volá se rozhraním při použití kontextu zařízení metasouboru.

void DrawMetafile(
    CDC* pDC,
    CRect& rc);

Parametry

pDC
Ukazatel na kontext zařízení metasouboru.

Rc
Obdélníková plocha, do které se má nakreslit.

COleControl::EnableSimpleFrame

Umožňuje jednoduchou charakteristické rámeček pro ovládací prvek OLE.

void EnableSimpleFrame();

Poznámky

Tato charakteristika umožňuje ovládacímu prvku podporovat vizuální uzavření jiných ovládacích prvků, ale ne skutečné zahrnutí OLE. Příkladem může být pole skupiny s několika ovládacími prvky uvnitř. Tyto ovládací prvky nejsou obsaženy ole, ale jsou ve stejném skupinovém rámečku.

COleControl::ExchangeExtent

Serializuje nebo inicializuje stav rozsahu ovládacího prvku (jeho dimenze v jednotkách HIMETRIC).

BOOL ExchangeExtent(CPropExchange* pPX);

Parametry

pPX
Ukazatel na objekt CPropExchange . Architektura poskytuje tento objekt k navázání kontextu výměny vlastností, včetně jeho směru.

Návratová hodnota

Nenulové, pokud funkce proběhla úspěšně; 0 jinak.

Poznámky

Tato funkce je obvykle volána výchozí implementací COleControl::DoPropExchange.

COleControl::ExchangeStockProps

Serializuje nebo inicializuje stav vlastností akcií ovládacího prvku.

void ExchangeStockProps(CPropExchange* pPX);

Parametry

pPX
Ukazatel na objekt CPropExchange . Architektura poskytuje tento objekt k navázání kontextu výměny vlastností, včetně jeho směru.

Poznámky

Tato funkce je obvykle volána výchozí implementací COleControl::DoPropExchange.

COleControl::ExchangeVersion

Serializuje nebo inicializuje stav informací o verzi ovládacího prvku.

BOOL ExchangeVersion(
    CPropExchange* pPX,
    DWORD dwVersionDefault,
    BOOL bConvert = TRUE);

Parametry

pPX
Ukazatel na CPropExchange objekt. Architektura poskytuje tento objekt k navázání kontextu výměny vlastností, včetně jeho směru.

dwVersionDefault
Aktuální číslo verze ovládacího prvku.

bConvert
Označuje, zda se mají trvalá data při uložení nebo zachování ve stejném formátu, který byl načten, převést na nejnovější formát.

Návratová hodnota

Nenulová funkce proběhla úspěšně; 0 jinak.

Poznámky

Obvykle to bude první funkce volaná přepsáním COleControl::DoPropExchangeovládacího prvku . Při načítání tato funkce přečte číslo verze trvalých dat a nastaví atribut verze CPropExchange objekt odpovídajícím způsobem. Při ukládání tato funkce zapíše číslo verze trvalých dat.

Další informace o trvalosti a správě verzí naleznete v článku Ovládací prvky ActiveX: Serializace.

COleControl::FireClick

Volá se rozhraním při kliknutí myší na aktivní ovládací prvek.

void FireClick();

Poznámky

Pokud je tato událost definovaná jako vlastní událost, určíte, kdy se událost aktivuje.

Aby mohlo dojít k automatickému spuštění události kliknutí, musí mít mapa událostí ovládacího prvku definovanou událostí kliknutí na skladě.

COleControl::FireDblClick

Volá se rozhraním, když je myš poklikáním na aktivní ovládací prvek.

void FireDblClick();

Poznámky

Pokud je tato událost definovaná jako vlastní událost, určíte, kdy se událost aktivuje.

Aby mohlo dojít k automatickému spuštění události DblClick, musí mít mapa událostí ovládacího prvku definovanou akci DblClick.

COleControl::FireError

Aktivuje akci Chyba zásob.

void FireError(
    SCODE scode,
    LPCTSTR lpszDescription,
    UINT nHelpID = 0);

Parametry

scode
Hodnota stavového kódu, která se má hlásit. Úplný seznam možných kódů najdete v článku Ovládací prvky ActiveX: Pokročilá témata.

lpszDescription
Popis nahlášené chyby.

nHelpID
ID nápovědy nahlášené chyby.

Poznámky

Tato událost poskytuje způsob signalizace na příslušných místech v kódu, že došlo k chybě ve vašem ovládacím prvku. Na rozdíl od jiných akciových událostí, jako je kliknutí nebo mouseMove, se rozhraním nikdy neaktivuje chyba.

Chcete-li nahlásit chybu, která nastane během funkce get vlastnosti, vlastnost set funkce nebo metoda automatizace, zavolejte COleControl::ThrowError.

Implementace události Stock Error ovládacího prvku OLE používá hodnotu SCODE. Pokud váš ovládací prvek používá tuto událost a je určen k použití v jazyce Visual Basic 4.0, zobrazí se chyby, protože hodnota SCODE není podporována v jazyce Visual Basic.

Chcete-li tento problém vyřešit, ručně změňte parametr SCODE v ovládacím prvku . ODL soubor do longsouboru . Kromě toho všechny vlastní události, metody nebo vlastnosti, které používají parametr SCODE, také způsobují stejný problém.

COleControl::FireEvent

Aktivuje uživatelem definovanou událost z vašeho ovládacího prvku s libovolným počtem volitelných argumentů.

void AFX_CDECL FireEvent(
    DISPID dispid,
    BYTE* pbParams,
...);

Parametry

dispid
ID odeslání události, která se má aktivovat.

pbParams
Popisovač pro typy parametrů události.

Poznámky

Obvykle by tato funkce neměla být volána přímo. Místo toho budete volat funkce pro aktivaci událostí v části mapy událostí deklarace třídy vašeho ovládacího prvku.

Argument pbParams je seznam VTS_ oddělený mezerami. Jedna nebo více těchto hodnot oddělených mezerami (nikoli čárkami) určuje seznam parametrů funkce. Možné hodnoty jsou následující:

Symbol Typ parametru
VTS_COLOR OLE_COLOR
VTS_FONT IFontDisp*
VTS_HANDLE HWND
VTS_PICTURE IPictureDisp*
VTS_OPTEXCLUSIVE OLE_OPTEXCLUSIVE*
VTS_TRISTATE OLE_TRISTATE
VTS_XPOS_HIMETRIC OLE_XPOS_HIMETRIC
VTS_YPOS_HIMETRIC OLE_YPOS_HIMETRIC
VTS_XPOS_PIXELS OLE_XPOS_PIXELS
VTS_YPOS_PIXELS OLE_YPOS_PIXELS
VTS_XSIZE_PIXELS OLE_XSIZE_PIXELS
VTS_YSIZE_PIXELS OLE_XSIZE_PIXELS
VTS_XSIZE_HIMETRIC OLE_XSIZE_HIMETRIC
VTS_YSIZE_HIMETRIC OLE_XSIZE_HIMETRIC

Poznámka:

Další variantní konstanty byly definovány pro všechny typy variant s výjimkou VTS_FONT a VTS_PICTURE, které poskytují ukazatel na konstantu dat varianty. Tyto konstanty jsou pojmenovány pomocí konvence VTS_P<CONSTANT-NAME> . Například VTS_PCOLOR je ukazatel na VTS_COLOR konstantu.

COleControl::FireKeyDown

Volá se rozhraním, když je stisknuta klávesa, zatímco ovládací prvek je aktivní v uživatelském rozhraní.

void FireKeyDown(
    USHORT* pnChar,
    short nShiftState);

Parametry

pnChar
Ukazatel na hodnotu kódu virtuálního klíče stisknutou klávesou Seznam standardních kódů virtuálních klíčů najdete v tématu Winuser.h

nShiftState
Obsahuje kombinaci následujících příznaků:

  • SHIFT_MASK během akce se stiskla klávesa SHIFT.

  • CTRL_MASK při akci se stiskla klávesa CTRL.

  • ALT_MASK během akce se stiskla klávesa ALT.

Poznámky

Pokud je tato událost definovaná jako vlastní událost, určíte, kdy se událost aktivuje.

Aby mohlo dojít k automatickému spuštění události KeyDown, musí mít mapa událostí ovládacího prvku definovanou skladovou událost KeyDown.

COleControl::FireKeyPress

Volá se rozhraním, když se stiskne a uvolní klávesa, zatímco vlastní ovládací prvek je v kontejneru aktivní uživatelské rozhraní.

void FireKeyPress(USHORT* pnChar);

Parametry

pnChar
Ukazatel na hodnotu znaku stisknuté klávesy.

Poznámky

Pokud je tato událost definovaná jako vlastní událost, určíte, kdy se událost aktivuje.

Příjemce události může změnit pnChar, například převést všechna malá písmena na velká písmena. Chcete-li prozkoumat upravený znak, přepište OnKeyPressEvent.

Aby mohlo dojít k automatickému spuštění události KeyPress, musí mít mapa událostí ovládacího prvku definovanou skladovou událost KeyPress.

COleControl::FireKeyUp

Volá se rozhraním, když se uvolní klíč, zatímco vlastní ovládací prvek je v kontejneru aktivní.

void FireKeyUp(
    USHORT* pnChar,
    short nShiftState);

Parametry

pnChar
Ukazatel na hodnotu kódu virtuálního klíče vydaného klíče. Seznam standardních kódů virtuálních klíčů najdete v tématu Winuser.h

nShiftState
Obsahuje kombinaci následujících příznaků:

  • SHIFT_MASK během akce se stiskla klávesa SHIFT.

  • CTRL_MASK při akci se stiskla klávesa CTRL.

  • ALT_MASK během akce se stiskla klávesa ALT.

Poznámky

Pokud je tato událost definovaná jako vlastní událost, určíte, kdy se událost aktivuje.

Aby mohlo dojít k automatickému spuštění události KeyUp, musí mít mapa událostí ovládacího prvku definovanou skladovou událost KeyUp.

COleControl::FireMouseDown

Volá se rozhraním, když je tlačítko myši stisknuto přes aktivní vlastní ovládací prvek.

void FireMouseDown(
    short nButton,
    short nShiftState,
    OLE_XPOS_PIXELS x,
    OLE_YPOS_PIXELS y);

Parametry

nButton
Číselná hodnota tlačítka myši byla stisknuta. Může obsahovat jednu z následujících hodnot:

  • LEFT_BUTTON levé tlačítko myši bylo stisknuto dolů.

  • MIDDLE_BUTTON Prostřední tlačítko myši bylo stisknuto dolů.

  • RIGHT_BUTTON pravé tlačítko myši bylo stisknuto dolů.

nShiftState
Obsahuje kombinaci následujících příznaků:

  • SHIFT_MASK během akce se stiskla klávesa SHIFT.

  • CTRL_MASK při akci se stiskla klávesa CTRL.

  • ALT_MASK během akce se stiskla klávesa ALT.

x
Souřadnice x kurzoru při stisknutí tlačítka myši. Souřadnice je relativní vzhledem k levému hornímu rohu ovládacího okna.

y
Souřadnice y kurzoru při stisknutí tlačítka myši dolů. Souřadnice je relativní vzhledem k levému hornímu rohu ovládacího okna.

Poznámky

Pokud je tato událost definovaná jako vlastní událost, určíte, kdy se událost aktivuje.

Aby mohlo dojít k automatickému spuštění události MouseDown, musí mít mapa událostí ovládacího prvku definovanou skladovou událost MouseDown.

COleControl::FireMouseMove

Volá se rozhraním, když se kurzor přesune přes aktivní vlastní ovládací prvek.

void FireMouseMove(
    short nButton,
    short nShiftState,
    OLE_XPOS_PIXELS x,
    OLE_YPOS_PIXELS y);

Parametry

nButton
Číselná hodnota tlačítek myši se stiskla. Obsahuje kombinaci následujících hodnot:

  • LEFT_BUTTON levé tlačítko myši bylo během akce stisknuto dolů.

  • MIDDLE_BUTTON Prostřední tlačítko myši bylo během akce stisknuto dolů.

  • RIGHT_BUTTON Pravé tlačítko myši bylo během akce stisknuto dolů.

nShiftState
Obsahuje kombinaci následujících příznaků:

  • SHIFT_MASK během akce se stiskla klávesa SHIFT.

  • CTRL_MASK při akci se stiskla klávesa CTRL.

  • ALT_MASK během akce se stiskla klávesa ALT.

x
Souřadnice x kurzoru. Souřadnice je relativní vzhledem k levému hornímu rohu ovládacího okna.

y
Souřadnice y kurzoru. Souřadnice je relativní vzhledem k levému hornímu rohu ovládacího okna.

Poznámky

Pokud je tato událost definovaná jako vlastní událost, určíte, kdy se událost aktivuje.

Aby mohlo dojít k automatickému spuštění události MouseMove, musí mít mapa událostí ovládacího prvku definovanou akci MouseMove.

COleControl::FireMouseUp

Volá se rozhraním, když je tlačítko myši uvolněno prostřednictvím aktivního vlastního ovládacího prvku.

void FireMouseUp(
    short nButton,
    short nShiftState,
    OLE_XPOS_PIXELS x,
    OLE_YPOS_PIXELS y);

Parametry

nButton
Číselná hodnota vydaného tlačítka myši. Může mít jednu z následujících hodnot:

  • LEFT_BUTTON tlačítko levého tlačítka myši bylo vydáno.

  • MIDDLE_BUTTON Prostřední tlačítko myši bylo vydáno.

  • RIGHT_BUTTON pravé tlačítko myši bylo vydáno.

nShiftState
Obsahuje kombinaci následujících příznaků:

  • SHIFT_MASK během akce se stiskla klávesa SHIFT.

  • CTRL_MASK při akci se stiskla klávesa CTRL.

  • ALT_MASK během akce se stiskla klávesa ALT.

x
Souřadnice x kurzoru při uvolnění tlačítka myši. Souřadnice je relativní vzhledem k levému hornímu rohu ovládacího okna.

y
Souřadnice y kurzoru při uvolnění tlačítka myši. Souřadnice je relativní vzhledem k levému hornímu rohu ovládacího okna.

Poznámky

Pokud je tato událost definovaná jako vlastní událost, určíte, kdy se událost aktivuje.

Aby mohlo dojít k automatickému spuštění události MouseUp, musí mít mapa událostí ovládacího prvku definovanou skladovou událost MouseUp.

COleControl::FireReadyStateChange

Aktivuje událost s aktuální hodnotou připraveného stavu řízení.

void FireReadyStateChange();

Poznámky

Připravený stav může být jedna z následujících hodnot:

Název Popis
READYSTATE_UNINITIALIZED Výchozí stav inicializace
READYSTATE_LOADING Ovládací prvek aktuálně načítá své vlastnosti.
READYSTATE_LOADED Ovládací prvek byl inicializován.
READYSTATE_INTERACTIVE Ovládací prvek má dostatek dat pro interaktivní, ale ne všechna asynchronní data jsou ještě načtena.
READYSTATE_COMPLETE Ovládací prvek má všechna data.

K určení aktuální připravenosti ovládacího prvku použijte GetReadyState .

InternalSetReadyState změní stav připraveno na zadanou hodnotu a potom zavolá FireReadyStateChange.

COleControl::GetActivationPolicy

Změní výchozí chování aktivace ovládacího prvku, který podporuje IPointerInactive rozhraní.

virtual DWORD GetActivationPolicy();

Návratová hodnota

Kombinace příznaků z výčtu POINTERINACTIVE. Možné příznaky jsou:

Název Popis
POINTERINACTIVE_ACTIVATEONENTRY Objekt by měl být aktivovaný, když ho myš zadá během operace přesunutí myši.
POINTERINACTIVE_DEACTIVATEONLEAVE Objekt by měl být deaktivován, když myš opustí objekt během operace přesunutí myší.
POINTERINACTIVE_ACTIVATEONDRAG Objekt by měl být aktivovaný, když je myš přetažena během operace přetažení.

Poznámky

IPointerInactive Když je rozhraní povolené, kontejner na něj deleguje WM_SETCURSOR a WM_MOUSEMOVE zprávy. COleControlImplementace tohoto rozhraní bude tyto zprávy odesílat prostřednictvím mapy zpráv vašeho ovládacího prvku po správné úpravě souřadnic myši.

Kdykoli kontejner obdrží WM_SETCURSOR nebo WM_MOUSEMOVE zprávu s ukazatelem myši nad neaktivním objektem podporujícím IPointerInactive, měl by volat GetActivationPolicy rozhraní a vracet příznaky z výčtu POINTERINACTIVE.

Tyto zprávy můžete zpracovat stejně jako běžné zprávy okna přidáním odpovídajících položek do mapy zpráv. V obslužných rutinách nepoužívejte m_hWnd členovou proměnnou (nebo jakékoli členské funkce, které ji používají), aniž byste nejprve zkontrolovali, že její hodnota není NULL.

Jakýkoli objekt, který má udělat víc, než nastavit kurzor myši nebo aktivovat událost přesunutí myší, například poskytnout zvláštní vizuální zpětnou vazbu, by měl vrátit příznak POINTERINACTIVE_ACTIVATEONENTRY a nakreslit zpětnou vazbu pouze v případě, že je aktivní. Pokud objekt vrátí tento příznak, kontejner by ho měl okamžitě aktivovat a pak předat stejnou zprávu, která aktivovala volání GetActivationPolicy.

Pokud se vrátí POINTERINACTIVE_ACTIVATEONENTRY i POINTERINACTIVE_DEACTIVATEONLEAVE příznaky, objekt se aktivuje pouze v případě, že je na objektu myš. Pokud se vrátí pouze příznak POINTERINACTIVE_ACTIVATEONENTRY, objekt se aktivuje pouze jednou, jakmile myš poprvé vstoupí do objektu.

Můžete také chtít, aby neaktivní ovládací prvek byl cílem operace přetažení a přetažení OLE. To vyžaduje aktivaci ovládacího prvku v okamžiku, kdy uživatel přetáhne objekt, aby bylo možné zaregistrovat okno ovládacího prvku jako cíl přetažení. Pokud chcete způsobit aktivaci během přetažení, vraťte příznak POINTERINACTIVE_ACTIVATEONDRAG:

DWORD CMyAxCtrl::GetActivationPolicy()
{
   return POINTERINACTIVE_ACTIVATEONDRAG;
}

Informace předávané GetActivationPolicy kontejnerem by neměly být uloženy v mezipaměti. Místo toho by se tato metoda měla volat při každém vstupu myši do neaktivního objektu.

Pokud neaktivní objekt nepožaduje, aby byl při vstupu myši na místě, měl by jeho kontejner odeslat následující WM_SETCURSOR zprávy do tohoto objektu voláním OnInactiveSetCursor , pokud ukazatel myši zůstane nad objektem.

IPointerInactive Povolení rozhraní obvykle znamená, že chcete, aby ovládací prvek mohl zpracovávat zprávy myši vždy. Pokud chcete toto chování získat v kontejneru, který nepodporuje IPointerInactive rozhraní, budete muset mít ovládací prvek vždy aktivovaný, když je viditelný, což znamená, že ovládací prvek by měl mít příznak OLEMISC_ACTIVATEWHENVISIBLE mezi různými příznaky. Pokud ale chcete zabránit tomu, aby se tento příznak projevil v kontejneru, který podporuje IPointerInactive, můžete také zadat příznak OLEMISC_IGNOREACTIVATEWHENVISIBLE:

static const DWORD BASED_CODE _dwMyOleMisc =
    OLEMISC_ACTIVATEWHENVISIBLE |
    OLEMISC_IGNOREACTIVATEWHENVISIBLE |
    OLEMISC_SETCLIENTSITEFIRST |
    OLEMISC_INSIDEOUT |
    OLEMISC_CANTLINKINSIDE |
    OLEMISC_RECOMPOSEONRESIZE;

COleControl::GetAmbientProperty

Získá hodnotu okolí vlastnost kontejneru.

BOOL GetAmbientProperty(
    DISPID dispid,
    VARTYPE vtProp,
    void* pvProp);

Parametry

dwDispid
ID odeslání požadované okolní vlastnosti.

vtProp
Značka typu variant, která určuje typ hodnoty, která se má vrátit v pvProp.

pvProp
Ukazatel na adresu proměnné, která obdrží hodnotu vlastnosti nebo návratovou hodnotu. Skutečný typ tohoto ukazatele musí odpovídat typu určenému nástrojem vtProp.

vtProp Typ pvProp
VT_BOOL BOOL*
VT_BSTR CString*
VT_I2 short*
VT_I4 long*
VT_R4 float*
VT_R8 double*
VT_CY CY*
VT_COLOR OLE_COLOR*
VT_DISPATCH LPDISPATCH*
VT_FONT LPFONTDISP*

Návratová hodnota

Nenulové, pokud je okolí vlastnost podporována; jinak 0.

Poznámky

Pokud používáte GetAmbientProperty k načtení okolí DisplayName a ScaleUnits vlastnosti, nastavte vtProp na VT_BSTR a pvProp na CString*. Pokud načítáte okolí Font vlastnost, nastavte vtProp na VT_FONT a pvProp na LPFONTDISP*.

Všimněte si, že funkce již byly poskytnuty pro běžné okolní vlastnosti, jako je AmbientBackColor a AmbientFont.

COleControl::GetAppearance

Implementuje funkci Get vlastnosti Vzhled akcií ovládacího prvku.

short GetAppearance ();

Návratová hodnota

Vrácená hodnota určuje aktuální nastavení vzhledu jako short hodnotu (VT_I2), pokud byla úspěšná. Tato hodnota je nula, pokud je vzhled ovládacího prvku plochý a 1, pokud je vzhled ovládacího prvku 3D.

COleControl::GetBackColor

Implementuje funkci Get vlastnosti Stock BackColor ovládacího prvku.

OLE_COLOR GetBackColor();

Návratová hodnota

Vrácená hodnota určuje aktuální barvu pozadí jako hodnotu OLE_COLOR, pokud byla úspěšná. Tuto hodnotu lze přeložit na hodnotu COLORREF s voláním TranslateColor.

COleControl::GetBorderStyle

Implementuje funkci Get vlastnosti BorderStyle vašeho ovládacího prvku.

short GetBorderStyle();

Návratová hodnota

1, pokud má ovládací prvek normální ohraničení; 0, pokud ovládací prvek nemá žádné ohraničení.

COleControl::GetCapture

Určuje, zda má COleControl objekt zachycení myši.

CWnd* GetCapture();

Návratová hodnota

Pokud je ovládací prvek aktivován a bez oken, vrátí this , pokud ovládací prvek aktuálně obsahuje zachycení myši (jak je určeno kontejnerem ovládacího prvku) nebo NULL, pokud nemá zachycení.

V opačném případě vrátí CWnd objekt, který má zachytávání myší (stejné jako CWnd::GetCapture).

Poznámky

Aktivovaný ovládací prvek bez oken obdrží zachytávání myši při zavolání SetCapture .

COleControl::GetClassID

Volá se rozhraním pro načtení ID třídy OLE ovládacího prvku.

virtual HRESULT GetClassID(LPCLSID pclsid) = 0;

Parametry

pclsid
Ukazatel na umístění ID třídy.

Návratová hodnota

Nenulové, pokud volání nebylo úspěšné; jinak 0.

Poznámky

Obvykle implementuje IMPLEMENT_OLECREATE_EX.

COleControl::GetClientOffset

Načte rozdíl mezi levým horním rohem obdélníkové oblasti ovládacího prvku a levým horním rohem jeho klientské oblasti.

virtual void GetClientOffset(long* pdxOffset, long* pdyOffset) const;

Parametry

pdxOffset
Ukazatel na vodorovný posun klientské oblasti ovládacího prvku OLE.

pdyOffset
Ukazatel na svislý posun klientské oblasti ovládacího prvku OLE.

Poznámky

Ovládací prvek OLE má v kontejneru obdélníkovou oblast. Klientská oblast ovládacího prvku je oblast ovládacího prvku s výjimkou ohraničení a posuvníků. Posun načtený GetClientOffset pomocí je rozdíl mezi levým horním rohem obdélníkové oblasti ovládacího prvku a levým horním rohem jeho klientské oblasti. Pokud ovládací prvek obsahuje jiné než standardní ohraničení a posuvníky, přepište tuto členskou funkci tak, aby určila posun.

COleControl::GetClientRect

Načte velikost klientské oblasti ovládacího prvku.

virtual void GetClientRect(LPRECT lpRect) const;

Parametry

lpRect
Ukazatel na RECT strukturu obsahující rozměry klientské oblasti ovládacího prvku bez oken, tj. velikost ovládacího prvku minus ohraničení okna, rámečky, posuvníky atd. Parametr lpRect označuje velikost obdélníku klienta ovládacího prvku, nikoli jeho pozici.

COleControl::GetClientSite

Dotazuje objekt na ukazatel na aktuální klientskou lokalitu v rámci kontejneru.

LPOLECLIENTSITE GetClientSite();

Návratová hodnota

Ukazatel na aktuální klientskou lokalitu ovládacího prvku v jeho kontejneru.

Poznámky

Vrácený ukazatel odkazuje na instanci IOleClientSite. Rozhraní IOleClientSite implementované kontejnery je zobrazením jeho kontextu objektu: kde je ukotvený v dokumentu, kde získá své úložiště, uživatelské rozhraní a další prostředky.

COleControl::GetControlFlags

Načte nastavení příznaku ovládacího prvku.

virtual DWORD GetControlFlags();

Návratová hodnota

Kombinace ORed příznaků ve výčtu ControlFlags:

enum ControlFlags {
    fastBeginPaint = 0x0001,
    clipPaintDC = 0x0002,
    pointerInactive = 0x0004,
    noFlickerActivate = 0x0008,
    windowlessActivate = 0x0010,
    canOptimizeDraw = 0x0020,
    };

Poznámky

Ve výchozím nastavení GetControlFlags vrátí hodnotu fastBeginPaint | clipPaintDC.

Název Popis
fastBeginPaint Pokud je tato sada nastavená, používá místo rozhraní API BeginPaint funkci počátečního malování přizpůsobenou pro ovládací prvky OLE (ve výchozím nastavení je nastavena).
clipPaintDC Pokud není nastavená, zakáže volání IntersectClipRect provedené a COleControl získá malou výhodu rychlosti. Pokud používáte aktivaci bez oken, příznak nemá žádný vliv.
pointerInactive Pokud je tato možnost nastavená, poskytuje interakci myší, když je ovládací prvek neaktivní, povolením COleControlimplementace IPointerInactive rozhraní, která je ve výchozím nastavení zakázaná.
noFlickerActivate Pokud je sada nastavená, eliminuje nadbytečné operace kreslení a doprovodný vizuál bliká. Použijte, když se ovládací prvek identicky nakreslí v neaktivních a aktivních stavech. Pokud používáte aktivaci bez oken, příznak nemá žádný vliv.
windowlessActivate Pokud je nastavená, znamená to, že váš ovládací prvek používá aktivaci bez oken.
canOptimizeDraw Pokud je tato sada nastavená, znamená to, že ovládací prvek provede optimalizovaný výkres, pokud ho kontejner podporuje.

Další informace o GetControlFlags a dalších optimalizacích ovládacích prvků OLE naleznete v tématu Ovládací prvky ActiveX: Optimalizace.

COleControl::GetControlSize

Načte velikost ovládacího okna OLE.

void GetControlSize(
    int* pcx,
    int* pcy);

Parametry

pcx
Určuje šířku ovládacího prvku v pixelech.

pcy
Určuje výšku ovládacího prvku v pixelech.

Poznámky

Všimněte si, že všechny souřadnice ovládacích oken jsou relativní vzhledem k levému hornímu rohu ovládacího prvku.

COleControl::GetDC

Poskytuje objekt bez oken k získání kontextu obrazovky (nebo kompatibilního) zařízení z jeho kontejneru.

CDC* GetDC(
    LPCRECT lprcRect = NULL,
    DWORD dwFlags = OLEDC_PAINTBKGND);

Parametry

lprcRect
Ukazatel na obdélník, který ovládací prvek bez oken chce překreslit, v klientských souřadnicích ovládacího prvku. HODNOTA NULL znamená rozsah celého objektu.

dwFlags
Atributy kreslení kontextu zařízení Možnosti jsou:

  • OLEDC_NODRAW Označuje, že objekt nebude používat kontext zařízení k provedení žádného výkresu, ale pouze k získání informací o zobrazovacím zařízení. Kontejner by měl jednoduše předat řadič domény okna bez dalšího zpracování.

  • OLEDC_PAINTBKGND Vyžaduje, aby kontejner před vrácením řadiče domény nakresloval pozadí. Objekt by měl tento příznak použít, pokud požaduje řadič domény pro překreslení oblasti s průhledným pozadím.

  • OLEDC_OFFSCREEN Informuje kontejner, že objekt chce vykreslit rastrový obrázek mimo obrazovku, který by se pak měl zkopírovat na obrazovku. Objekt by měl tento příznak použít při operaci kreslení, která se chystá provést vygenerování velkého blikání. Kontejner je zdarma k tomuto požadavku nebo ne. Pokud ale tento příznak není nastavený, musí kontejner předat řadič domény na obrazovce. To umožňuje objektům provádět operace přímé obrazovky, jako je zobrazení výběru (prostřednictvím operace XOR ).

Návratová hodnota

Ukazatel na kontext zobrazovacího zařízení pro oblast klienta kontejneru CWnd v případě úspěchu. V opačném případě je vrácená hodnota NULL. Kontext zařízení pro zobrazení lze použít v dalších funkcích GDI k vykreslení v klientské oblasti okna kontejneru.

Poznámky

Členská funkce ReleaseDC musí být volána, aby se po malování uvolnil kontext. Při volání GetDCobjekty předávají obdélník, do kterého chtějí nakreslit do vlastních souřadnic klienta. GetDC převede je na souřadnice oblasti klienta kontejneru. Objekt by neměl požadovat požadovaný obdélník výkresu větší než vlastní obdélník klientské oblasti, což je velikost, kterou lze načíst pomocí GetClientRect. Objekty tak nebudou neúmyslně kreslit tam, kde nemají být.

COleControl::GetEnabled

Implementuje funkci Get vlastnosti s povolenou akcií vašeho ovládacího prvku.

BOOL GetEnabled();

Návratová hodnota

Nenulové, pokud je ovládací prvek povolen; jinak 0.

COleControl::GetExtendedControl

Získá ukazatel na objekt udržovaný kontejnerem, který představuje ovládací prvek s rozšířenou sadou vlastností.

LPDISPATCH GetExtendedControl();

Návratová hodnota

Ukazatel na objekt rozšířeného ovládacího prvku kontejneru. Pokud není k dispozici žádný objekt, hodnota je NULL.

Tento objekt může být manipulován prostřednictvím jeho IDispatch rozhraní. Můžete také použít QueryInterface k získání dalších dostupných rozhraní poskytovaných objektem. Objekt však není nutný k podpoře konkrétní sady rozhraní. Mějte na paměti, že spoléhání na konkrétní funkce rozšířeného řídicího objektu kontejneru omezuje přenositelnost vašeho ovládacího prvku na jiné libovolné kontejnery.

Poznámky

Funkce, která tuto funkci volá, je zodpovědná za uvolnění ukazatele po dokončení objektu. Mějte na paměti, že kontejner není nutný k podpoře tohoto objektu.

COleControl::GetFocus

Určuje, zda má COleControl objekt fokus.

CWnd* GetFocus();

Návratová hodnota

Pokud je ovládací prvek aktivovaný a bez oken, vrátí se this , pokud má ovládací prvek aktuálně fokus klávesnice (jak je určeno kontejnerem ovládacího prvku) nebo NULL, pokud nemá fokus.

V opačném případě vrátí CWnd objekt, který má fokus (stejný jako CWnd::GetFocus).

Poznámky

Aktivovaný ovládací prvek bez oken obdrží fokus při zavolání SetFocus .

COleControl::GetFont

Implementuje funkci Get vlastnosti Stock Font.

LPFONTDISP GetFont();

Návratová hodnota

Ukazatel na rozhraní dispečera písma vlastnosti Font ovládacího prvku Stock Font.

Poznámky

Všimněte si, že volající musí po dokončení uvolnit objekt. V rámci implementace ovládacího prvku použijte InternalGetFont přístup k objektu Font ovládacího prvku stock. Další informace o používání písem v ovládacím prvku najdete v článku Ovládací prvky ActiveX: Použití písem v ovládacím prvku ActiveX.

COleControl::GetFontTextMetrics

Měří textové metriky pro libovolný CFontHolder objekt vlastněný ovládacím prvku.

void GetFontTextMetrics(
    LPTEXTMETRIC lptm,
    CFontHolder& fontHolder);

Parametry

lptm
Ukazatel na strukturu TEXTMETRIC .

fontHolder
Odkaz na objekt CFontHolder .

Poznámky

Takové písmo lze vybrat pomocí funkce COleControl::SelectFontObject . GetFontTextMetrics inicializuje TEXTMETRIC strukturu, na kterou odkazuje lptm , s platnými informacemi o fontHolderpísmu 's font if successful, or fill the structure with zeros if not successful. Tuto funkci byste měli použít místo GetTextMetrics při malování ovládacího prvku, protože ovládací prvky, jako je jakýkoli vložený objekt OLE, může být nutné, aby se vykreslovaly do metasouboru.

Struktura TEXTMETRIC výchozího písma se aktualizuje při zavolání funkce SelectFontObject . Měli byste zavolat GetFontTextMetrics až po výběru vlastnosti Písmo akcií, abyste zajistili, že informace, které poskytuje, jsou platné.

COleControl::GetForeColor

Implementuje funkci Get stock ForeColor vlastnost.

OLE_COLOR GetForeColor();

Návratová hodnota

Vrácená hodnota určuje aktuální barvu popředí jako hodnotu OLE_COLOR, pokud byla úspěšná. Tuto hodnotu lze přeložit na hodnotu COLORREF s voláním TranslateColor.

COleControl::GetHwnd

Implementuje funkci Get vlastnosti stock hWnd.

OLE_HANDLE GetHwnd();

Návratová hodnota

Úchyt okna ovládacího prvku OLE, pokud existuje; jinak NULL.

COleControl::GetMessageString

Volá se rozhraním pro získání krátkého řetězce, který popisuje účel položky nabídky identifikované nID.

virtual void GetMessageString(
    UINT nID,
    CString& rMessage) const;

Parametry

Nid
ID položky nabídky.

rMessage
Odkaz na objekt CString , prostřednictvím kterého bude vrácen řetězec.

Poznámky

Dá se použít k získání zprávy pro zobrazení na stavovém řádku, když je položka nabídky zvýrazněná. Výchozí implementace se pokusí načíst řetězcový prostředek identifikovaný nID.

COleControl::GetNotSupported

Zabrání uživateli přístup k hodnotě vlastnosti ovládacího prvku.

void GetNotSupported();

Poznámky

Volání této funkce místo funkce Get jakékoli vlastnosti, kde načtení vlastnosti uživatelem ovládacího prvku není podporováno. Jedním z příkladů je vlastnost, která je určena pouze pro zápis.

COleControl::GetReadyState

Vrátí stav připravenosti ovládacího prvku.

long GetReadyState();

Návratová hodnota

Stav připravenosti ovládacího prvku, jedna z následujících hodnot:

Název Popis
READYSTATE_UNINITIALIZED Výchozí stav inicializace
READYSTATE_LOADING Ovládací prvek aktuálně načítá své vlastnosti.
READYSTATE_LOADED Ovládací prvek byl inicializován.
READYSTATE_INTERACTIVE Ovládací prvek má dostatek dat pro interaktivní, ale ne všechna asynchronní data jsou ještě načtena.
READYSTATE_COMPLETE Ovládací prvek má všechna data.

Poznámky

Většina jednoduchých ovládacích prvků nemusí rozlišovat mezi FUNKCÍ LOADED a INTERACTIVE. Ovládací prvky, které podporují vlastnosti cesty k datům, ale nemusí být připravené být interaktivní, dokud asynchronně nepřijdou alespoň některá data. Ovládací prvek by se měl co nejdříve pokusit o interaktivní.

COleControl::GetRectInContainer

Získá souřadnice obdélníku ovládacího prvku vzhledem ke kontejneru vyjádřenému v jednotkách zařízení.

BOOL GetRectInContainer(LPRECT lpRect);

Parametry

lpRect
Ukazatel na obdélníkovou strukturu, do které se zkopírují souřadnice ovládacího prvku.

Návratová hodnota

Nenulové, pokud je ovládací prvek aktivní; jinak 0.

Poznámky

Obdélník je platný pouze v případě, že je ovládací prvek aktivní.

COleControl::GetStockTextMetrics

Měří textové metriky pro vlastnost Písmo akcií ovládacího prvku, kterou lze vybrat pomocí funkce SelectStockFont .

void GetStockTextMetrics(LPTEXTMETRIC lptm);

Parametry

lptm
Ukazatel na strukturu TEXTMETRIC .

Poznámky

Funkce GetStockTextMetrics inicializuje TEXTMETRIC strukturu, na kterou odkazuje lptm , s platnými informacemi o metrikách, pokud jsou úspěšné, nebo vyplní strukturu nulami, pokud nejsou úspěšné. Tuto funkci použijte místo GetTextMetrics při malování ovládacího prvku, protože ovládací prvky, jako je jakýkoli vložený objekt OLE, mohou být nutné k vykreslení do metasouboru.

Struktura TEXTMETRIC výchozího písma se při SelectStockFont zavolání funkce aktualizuje. Tuto funkci byste měli zavolat až po výběru písma stock, abyste zajistili, že informace, které poskytuje, jsou platné.

COleControl::GetText

Implementuje funkci Get vlastnosti Text nebo Caption akcie.

BSTR GetText();

Návratová hodnota

Aktuální hodnota textového řetězce ovládacího prvku nebo řetězce nulové délky, pokud neexistuje žádný řetězec.

Poznámka:

Další informace o datovém typu BSTR naleznete v části Datové typy v části Makra a globální hodnoty.

Poznámky

Všimněte si, že volající této funkce musí volat SysFreeString řetězec vrácený, aby uvolnil prostředek. V rámci implementace ovládacího prvku použijte InternalGetText přístup k akciový text nebo titulek ovládacího prvku vlastnost.

COleControl::GetWindowlessDropTarget

Přepsat GetWindowlessDropTarget , pokud chcete, aby ovládací prvek bez oken byl cílem operace přetažení a přetažení OLE.

virtual IDropTarget* GetWindowlessDropTarget();

Návratová hodnota

Ukazatel na rozhraní objektu IDropTarget . Vzhledem k tomu, že okno nemá, nemůže objekt bez oken zaregistrovat IDropTarget rozhraní. Chcete-li se však zúčastnit přetažení, objekt bez oken může stále implementovat rozhraní a vrátit jej do GetWindowlessDropTarget.

Poznámky

Obvykle by to vyžadovalo, aby bylo okno ovládacího prvku registrováno jako cíl pro odstranění. Vzhledem k tomu, že ovládací prvek nemá vlastní okno, kontejner použije jako cíl vyřazení vlastní okno. Ovládací prvek jednoduše potřebuje poskytnout implementaci IDropTarget rozhraní, na které může kontejner delegovat volání v příslušné době. Příklad:

IDropTarget *CMyAxCtrl::GetWindowlessDropTarget()
{
   m_xDropTarget.AddRef();
   return &m_xDropTarget;
}

COleControl::InitializeIID

Informuje základní třídu identifikátorů IID, které bude ovládací prvek používat.

void InitializeIIDs(
    const IID* piidPrimary,
    const IID* piidEvents);

Parametry

piidPrimary
Ukazatel na ID rozhraní primárního dispečerského rozhraní ovládacího prvku.

piidEvents
Ukazatel na ID rozhraní rozhraní ovládacího prvku událostí.

Poznámky

Voláním této funkce v konstruktoru ovládacího prvku informujte základní třídu ID rozhraní, které bude ovládací prvek používat.

COleControl::InternalGetFont

Accesses the stock Font property of your control

CFontHolder& InternalGetFont();

Návratová hodnota

Odkaz na CFontHolder objekt, který obsahuje stock Font objektu.

COleControl::InternalGetText

Accesses the stock Text or Caption property of your control.

const CString& InternalGetText();

Návratová hodnota

Odkaz na textový řetězec ovládacího prvku

COleControl::InternalSetReadyState

Nastaví stav připravenosti ovládacího prvku.

void InternalSetReadyState(long lNewReadyState);

Parametry

lNewReadyState
Stav připravenosti, který se má nastavit pro ovládací prvek, jedna z následujících hodnot:

Název Popis
READYSTATE_UNINITIALIZED Výchozí stav inicializace
READYSTATE_LOADING Ovládací prvek aktuálně načítá své vlastnosti.
READYSTATE_LOADED Ovládací prvek byl inicializován.
READYSTATE_INTERACTIVE Ovládací prvek má dostatek dat pro interaktivní, ale ne všechna asynchronní data jsou ještě načtena.
READYSTATE_COMPLETE Ovládací prvek má všechna data.

Poznámky

Většina jednoduchých ovládacích prvků nemusí rozlišovat mezi FUNKCÍ LOADED a INTERACTIVE. Ovládací prvky, které podporují vlastnosti cesty k datům, ale nemusí být připravené být interaktivní, dokud asynchronně nepřijdou alespoň některá data. Ovládací prvek by se měl co nejdříve pokusit o interaktivní.

COleControl::InvalidateControl

Vynutí ovládací prvek, aby se překreslil.

void InvalidateControl(
    LPCRECT lpRect = NULL,
    BOOL bErase = TRUE);

Parametry

lpRect
Ukazatel na oblast ovládacího prvku, který se má zneplatnit.

bErase
Určuje, jestli má být při zpracování oblasti aktualizace vymazáno pozadí v rámci oblasti aktualizace.

Poznámky

Pokud má hodnota lpRect hodnotu NULL, překreslí se celý ovládací prvek. Pokud hodnota lpRect není NULL, znamená to část obdélníku ovládacího prvku, který se má zneplatnit. V případech, kdy ovládací prvek nemá žádné okno nebo není aktuálně aktivní, je obdélník ignorován a volání do členské funkce IAdviseSink::OnViewChange členské funkce klientské lokality. Tuto funkci použijte místo CWnd::InvalidateRect nebo InvalidateRect.

COleControl::InvalidateRgn

Zneplatní oblast klienta okna kontejneru v dané oblasti.

void InvalidateRgn(CRgn* pRgn, BOOL bErase = TRUE);

Parametry

pRgn
Ukazatel na objekt CRgn , který identifikuje oblast zobrazení objektu OLE k zneplatnění, v klientských souřadnicích obsahujícího okna. Pokud je tento parametr NULL, rozsah je celý objekt.

bErase
Určuje, jestli se má vymazat pozadí v rámci neplatné oblasti. Pokud je pravda, pozadí se vymaže. Pokud je hodnota FALSE, pozadí zůstane beze změny.

Poznámky

Dá se použít k překreslení ovládacích prvků bez oken v kontejneru. Neplatná oblast spolu se všemi ostatními oblastmi v oblasti aktualizace je označena k malování při odeslání další WM_PAINT zprávy.

Pokud má bErase hodnotu TRUE pro libovolnou část oblasti aktualizace, vymaže se pozadí v celé oblasti, nejen v dané části.

COleControl::IsConvertingVBX

Umožňuje specializované načítání ovládacího prvku OLE.

BOOL IsConvertingVBX();

Návratová hodnota

Nenulové, pokud je ovládací prvek převeden; jinak 0.

Poznámky

Při převodu formuláře, který používá ovládací prvky VBX na ovládací prvky OLE, může být vyžadován speciální kód načítání pro ovládací prvky OLE. Pokud například načítáte instanci ovládacího prvku OLE, můžete mít volání PX_Font v DoPropExchange:

PX_Font(pPX, _T("Font"), *m_pMyFont, &DefaultFont);

Ovládací prvky VBX však neměly objekt Písmo; každá vlastnost písma byla uložena jednotlivě. V tomto případě byste použili IsConvertingVBX k rozlišení mezi těmito dvěma případy:

if (!IsConvertingVBX())
{
   PX_Font(pPX, _T("Font"), *m_pMyFont, &DefaultFont);
}
else
{
   PX_String(pPX, _T("FontName"), tempString, DefaultName);
   m_pMyFont->m_pFont->put_Name(tempString.AllocSysString());
   PX_Bool(pPX, _T("FontUnderline"), tempBool, DefaultValue);
   m_pMyFont->m_pFont->put_Underline(tempBool);
}

Dalším případem by bylo, kdyby váš ovládací prvek VBX uložil proprietární binární data (v jeho VBM_SAVEPROPERTY obslužné rutině zprávy) a váš ovládací prvek OLE uloží binární data v jiném formátu. Pokud chcete, aby byl ovládací prvek OLE zpětně kompatibilní s ovládacím prvku VBX, mohli byste pomocí funkce přečíst staré i nové formáty IsConvertingVBX tím, že odlišují, zda byl načten ovládací prvek VBX nebo ovládací prvek OLE.

Ve funkci ovládacího prvku DoPropExchange můžete zkontrolovat tuto podmínku a pokud ano, spusťte načíst kód specifický pro tento převod (například předchozí příklady). Pokud se ovládací prvek nepřevádí, můžete spustit normální kód načtení. Tato možnost se vztahuje pouze na ovládací prvky převedené z protějšků VBX.

COleControl::IsInvokeAllowed

Povolí vyvolání metody automatizace.

BOOL IsInvokeAllowed(DISPID dispid);

Návratová hodnota

Nenulové, pokud byl ovládací prvek inicializován; jinak 0.

Poznámky

Implementace volání IsInvokeAllowed architekturyIDispatch::Invoke, která určí, zda se daná funkce (identifikovaná dispid) může vyvolat. Výchozí chování ovládacího prvku OLE je umožnit vyvolání metod automatizace pouze v případě, že byl inicializován ovládací prvek; IsInvokeAllowed je to však virtuální funkce, která může být v případě potřeby přepsána (například při použití ovládacího prvku jako automatizační server).

COleControl::IsModified

Určuje, jestli byl stav ovládacího prvku změněn.

BOOL IsModified();

Návratová hodnota

Nenulové, pokud byl stav ovládacího prvku změněn od posledního uložení; jinak 0.

Poznámky

Stav ovládacího prvku se změní, když vlastnost změní hodnotu.

COleControl::IsOptimizedDraw

Určuje, zda kontejner podporuje optimalizovaný výkres pro aktuální operaci výkresu.

BOOL IsOptimizedDraw();

Návratová hodnota

TRUE, pokud kontejner podporuje optimalizovaný výkres pro aktuální operaci výkresu; jinak NEPRAVDA.

Poznámky

Pokud je podporován optimalizovaný výkres, po dokončení výkresu nemusí ovládací prvek vybírat staré objekty (pera, štětce, písma atd.).

COleControl::IsSubclassedControl

Volána architekturou k určení, zda ovládací prvek podtřídy ovládací prvek Windows.

virtual BOOL IsSubclassedControl();

Návratová hodnota

Nenulové, pokud je ovládací prvek podtříděn; jinak 0.

Poznámky

Tuto funkci musíte přepsat a vrátit hodnotu TRUE, pokud ovládací prvek OLE podtřídy ovládacího prvku Windows.

COleControl::Load

Obnoví všechna předchozí data načtená asynchronně a zahájí nové načtení asynchronní vlastnosti ovládacího prvku.

void Load(LPCTSTR strNewPath, CDataPathProperty& prop);

Parametry

strNewPath
Ukazatel na řetězec obsahující cestu, která odkazuje na absolutní umístění vlastnosti asynchronního ovládacího prvku.

podpěra
Objekt CDataPathProperty implementuje asynchronní vlastnost ovládacího prvku.

COleControl::LockInPlaceActive

Zabrání tomu, aby kontejner deaktivoval váš ovládací prvek.

BOOL LockInPlaceActive(BOOL bLock);

Parametry

blokovat
TRUE, pokud je místní aktivní stav ovládacího prvku uzamčen; NEPRAVDA, pokud se má odemknout.

Návratová hodnota

Nenulové, pokud byl zámek úspěšný; jinak 0.

Poznámky

Všimněte si, že každé uzamčení ovládacího prvku musí být spárováno s odemknutím ovládacího prvku po dokončení. Ovládací prvek byste měli zamknout jenom na krátkou dobu, například při aktivaci události.

COleControl::OnAmbientPropertyChange

Volá se rozhraním, když se změnila hodnota okolí kontejneru.

virtual void OnAmbientPropertyChange(DISPID dispid);

Parametry

dispID
ID odeslání okolní vlastnosti, která se změnila, nebo DISPID_UNKNOWN, pokud došlo ke změně více vlastností.

COleControl::OnAppearanceChanged

Volá se podle architektury, když se změnila hodnota vlastnosti Vzhled akcie.

virtual void OnAppearanceChanged ();

Poznámky

Tuto funkci přepište, pokud chcete oznámení po změně této vlastnosti. Výchozí volání InvalidateControlimplementace .

COleControl::OnBackColorChanged

Volá se architekturou, když se změnila hodnota vlastnosti BackColor stock.

virtual void OnBackColorChanged();

Poznámky

Tuto funkci přepište, pokud chcete oznámení po změně této vlastnosti. Výchozí volání InvalidateControlimplementace .

COleControl::OnBorderStyleChanged

Volá se rozhraním při změně hodnoty vlastnosti BorderStyle stock.

virtual void OnBorderStyleChanged();

Poznámky

Výchozí volání InvalidateControlimplementace .

Tuto funkci přepište, pokud chcete oznámení po změně této vlastnosti.

COleControl::OnClick

Volané rozhraním při kliknutí na tlačítko myši nebo byla vyvolána burzovní metoda DoClick.

virtual void OnClick(USHORT iButton);

Parametry

iButton
Index tlačítka myši Může mít jednu z následujících hodnot:

  • LEFT_BUTTON kliknutí na levé tlačítko myši.

  • MIDDLE_BUTTON na tlačítko prostřední myši se kliklo.

  • RIGHT_BUTTON kliknutí pravým tlačítkem myši.

Poznámky

Výchozí volání COleControl::FireClickimplementace .

Přepište tuto členovu funkci tak, aby upravte nebo rozšířili výchozí zpracování.

COleControl::OnClose

Volá se rozhraním, pokud kontejner volal funkci ovládacího prvku IOleControl::Close .

virtual void OnClose(DWORD dwSaveOption);

Parametry

dwSaveOption
Příznak označující, zda má být objekt uložen před načtením. Platné hodnoty jsou:

  • OLECLOSE_SAVEIFDIRTY

  • OLECLOSE_NOSAVE

  • OLECLOSE_PROMPTSAVE

Poznámky

Ve výchozím nastavení uloží řídicí objekt, OnClose pokud byl změněn a dwSaveOption je OLECLOSE_SAVEIFDIRTY nebo OLECLOSE_PROMPTSAVE.

COleControl::OnDoVerb

Volá se rozhraním při volání členské funkce kontejneru IOleObject::DoVerb .

virtual BOOL OnDoVerb(
    LONG iVerb,
    LPMSG lpMsg,
    HWND hWndParent,
    LPCRECT lpRect);

Parametry

iVerb
Index řídicího příkazu, který se má vyvolat.

lpMsg
Ukazatel na zprávu systému Windows, která způsobila vyvolání příkazu.

hWndParent
Popisovač nadřazeného okna ovládacího prvku. Pokud spuštění příkazu vytvoří okno (nebo okna), měl by se jako nadřazený objekt použít hWndParent .

lpRect
Ukazatel na strukturu RECT, do které se zkopírují souřadnice ovládacího prvku vzhledem ke kontejneru.

Návratová hodnota

Nenulové, pokud bylo volání úspěšné; jinak 0.

Poznámky

Výchozí implementace používá ON_OLEVERB a ON_STDOLEVERB položky mapování zpráv k určení správné funkce, která se má vyvolat.

Přepište tuto funkci tak, aby změnila výchozí zpracování slovesa.

COleControl::OnDraw

Volá se rozhraním pro vykreslení ovládacího prvku OLE v zadaném ohraničujícím obdélníku pomocí zadaného kontextu zařízení.

virtual void OnDraw(
    CDC* pDC,
    const CRect& rcBounds,
    const CRect& rcInvalid);

Parametry

pDC
Kontext zařízení, ve kterém se výkres vyskytuje.

RcBounds
Obdélníková oblast ovládacího prvku, včetně ohraničení.

RcInvalid
Obdélníková oblast ovládacího prvku, který je neplatný.

Poznámky

OnDraw se obvykle volá pro zobrazení obrazovky a předává kontext zařízení obrazovky jako pDC. Parametr rcBounds identifikuje obdélník v kontextu cílového zařízení (vzhledem k aktuálnímu režimu mapování). Parametr rcInvalid je skutečný obdélník, který je neplatný. V některých případech to bude menší oblast než rcBounds.

COleControl::OnDrawMetafile

Volá se rozhraním pro vykreslení ovládacího prvku OLE v zadaném ohraničující obdélník pomocí zadaného kontextu zařízení metasouboru.

virtual void OnDrawMetafile(
    CDC* pDC,
    const CRect& rcBounds);

Parametry

pDC
Kontext zařízení, ve kterém se výkres vyskytuje.

RcBounds
Obdélníková oblast ovládacího prvku, včetně ohraničení.

Poznámky

Výchozí implementace volá funkci OnDraw .

COleControl::OnEdit

Způsobí aktivaci ovládacího prvku ui.

virtual BOOL OnEdit(
    LPMSG lpMsg,
    HWND hWndParent,
    LPCRECT lpRect);

Parametry

lpMsg
Ukazatel na zprávu Systému Windows, která vyvolala operaci.

hWndParent
Popisovač nadřazeného okna ovládacího prvku.

lpRect
Ukazatel na obdélník používaný ovládacím prvku v kontejneru.

Návratová hodnota

Nenulové, pokud je volání úspěšné; jinak 0.

Poznámky

To má stejný účinek jako vyvolání OLEIVERB_UIACTIVATE slovesa ovládacího prvku.

Tato funkce se obvykle používá jako funkce obslužné rutiny pro položku mapy ON_OLEVERB zpráv. Tím zpřístupníte příkaz "Upravit" v nabídce "Objekt" ovládacího prvku. Příklad:

ON_OLEVERB(AFX_IDS_VERB_EDIT, OnEdit)

COleControl::OnEnabledChanged

Volá se architekturou, když se hodnota vlastnosti Enabled akcie změnila.

virtual void OnEnabledChanged();

Poznámky

Tuto funkci přepište, pokud chcete oznámení po změně této vlastnosti. Výchozí implementace volá InvalidateControl.

COleControl::OnEnumVerbs

Volá se rozhraním při volání členské funkce kontejneru IOleObject::EnumVerbs .

virtual BOOL OnEnumVerbs(LPENUMOLEVERB* ppenumOleVerb);

Parametry

ppenumOleVerb
Ukazatel na IEnumOLEVERB objekt, který vyčísluje příkazy ovládacího prvku.

Návratová hodnota

Nenulové, pokud jsou k dispozici příkazy; jinak 0.

Poznámky

Výchozí implementace vytvoří výčet ON_OLEVERB položek v mapě zpráv.

Přepište tuto funkci tak, aby změnila výchozí způsob vytváření výčtů sloves.

COleControl::OnEventAdvise

Volá se rozhraním, když je obslužná rutina události připojena nebo odpojena od ovládacího prvku OLE.

virtual void OnEventAdvise(BOOL bAdvise);

Parametry

bAdvise
PRAVDA označuje, že obslužná rutina události byla připojena k ovládacímu prvku. NEPRAVDA označuje, že obslužná rutina události byla odpojena od ovládacího prvku.

COleControl::OnFontChanged

Volá se architekturou, když se hodnota vlastnosti Font akcie změnila.

virtual void OnFontChanged();

Poznámky

Výchozí volání COleControl::InvalidateControlimplementace . Pokud je ovládací prvek podtřídy ovládacího prvku Windows, výchozí implementace také odešle WM_SETFONT zprávu do okna ovládacího prvku.

Tuto funkci přepište, pokud chcete oznámení po změně této vlastnosti.

Příklad

void CMyAxCtrl::OnFontChanged()
{
   // Always set it to the container's font
   if (m_MyEdit.m_hWnd != NULL)
   {
      IFontDisp *pFontDisp = NULL;
      IFont *pFont = NULL;
      HRESULT hr;

      // Get the container's FontDisp interface
      pFontDisp = AmbientFont();
      if (pFontDisp)
      {
         hr = pFontDisp->QueryInterface(IID_IFont, (LPVOID*)&pFont);
         if (FAILED(hr))
         {
            pFontDisp->Release();
            return;
         }
      }

      HFONT hFont = NULL;
      if (pFont)
      {
         pFont->get_hFont(&hFont);
         m_MyEdit.SendMessage(WM_SETFONT, (WPARAM)hFont, 0L);
      }

      pFontDisp->Release();
   }

   // Invalidate the control
   m_MyEdit.Invalidate();
   m_MyEdit.UpdateWindow();

   COleControl::OnFontChanged();
}

COleControl::OnForeColorChanged

Volá se rozhraním, když se hodnota vlastnosti ForeColor stock změnila.

virtual void OnForeColorChanged();

Poznámky

Výchozí volání InvalidateControlimplementace .

Tuto funkci přepište, pokud chcete oznámení po změně této vlastnosti.

COleControl::OnFreezeEvents

Volá se rozhraním po volání IOleControl::FreezeEventskontejneru .

virtual void OnFreezeEvents(BOOL bFreeze);

Parametry

bFreeze
TRUE, pokud je zpracování událostí ovládacího prvku zmrazeno; jinak NEPRAVDA.

Poznámky

Výchozí implementace nic nedělá.

Tuto funkci přepište, pokud chcete další chování při zablokování nebo zrušení zpracování událostí.

COleControl::OnGetColorSet

Volá se rozhraním při volání členské funkce kontejneru IViewObject::GetColorSet .

virtual BOOL OnGetColorSet(
    DVTARGETDEVICE* ptd,
    HDC hicTargetDev,
    LPLOGPALETTE* ppColorSet);

Parametry

Ptd
Odkazuje na cílové zařízení, pro které se má obrázek vykreslit. Pokud má tato hodnota hodnotu NULL, měl by se obrázek vykreslit pro výchozí cílové zařízení, obvykle zobrazovací zařízení.

hicTargetDev
Určuje kontext informací na cílovém zařízení označeném ptd. Tento parametr může být kontextem zařízení, ale nemusí být nutně jedním. Pokud je ptd null, hicTargetDev by měl být také NULL.

ppColorSet
Ukazatel na umístění, do kterého se má zkopírovat sada barev, které by se měly použít. Pokud funkce nevrátí sadu barev, vrátí se hodnota NULL.

Návratová hodnota

Nenulové, pokud je vrácena platná sada barev; jinak 0.

Poznámky

Kontejner volá tuto funkci, aby získal všechny barvy potřebné k vykreslení ovládacího prvku OLE. Kontejner může použít sady barev získané ve spojení s barvami, které potřebuje k nastavení celkové palety barev. Výchozí implementace vrátí hodnotu FALSE.

Přepište tuto funkci tak, aby všechna zvláštní zpracování tohoto požadavku.

COleControl::OnGetControlInfo

Volané architekturou, když kontejner ovládacího prvku požadoval informace o ovládacím prvku.

virtual void OnGetControlInfo(LPCONTROLINFO pControlInfo);

Parametry

pControlInfo
Ukazatel na strukturu CONTROLINFO , která se má vyplnit.

Poznámky

Tyto informace se skládají především z popisu měmónních klíčů ovládacího prvku. Výchozí implementace vyplní pControlInfo výchozími informacemi.

Tuto funkci přepište, pokud váš ovládací prvek potřebuje zpracovat měmónické klíče.

COleControl::OnGetDisplayString

Volá se rozhraním k získání řetězce, který představuje aktuální hodnotu vlastnosti identifikované dispid.

virtual BOOL OnGetDisplayString(
    DISPID dispid,
    CString& strValue);

Parametry

dispid
ID odeslání vlastnosti ovládacího prvku.

strValue
Odkaz na objekt CString , prostřednictvím kterého bude vrácen řetězec.

Návratová hodnota

Nenulové, pokud byl řetězec vrácen v strValue; jinak 0.

Poznámky

Tuto funkci přepište, pokud má ovládací prvek vlastnost, jejíž hodnotu nelze přímo převést na řetězec a chcete, aby se hodnota vlastnosti zobrazovala v prohlížeči vlastností zadaných kontejnerem.

COleControl::OnGetInPlaceMenu

Volá se rozhraním při aktivaci ovládacího prvku ui pro získání nabídky, která se má sloučit do existující nabídky kontejneru.

virtual HMENU OnGetInPlaceMenu();

Návratová hodnota

Popisovač nabídky ovládacího prvku nebo null, pokud ovládací prvek nemá žádný. Výchozí implementace vrátí hodnotu NULL.

Poznámky

Další informace o slučování prostředků OLE naleznete v článku Nabídky a prostředky (OLE).

COleControl::OnGetNaturalExtent

Volá se rozhraním v reakci na požadavek kontejneru IViewObjectEx::GetNaturalExtent .

virtual BOOL OnGetNaturalExtent(
    DWORD dwAspect,
    LONG lindex,
    DVTARGETDEVICE* ptd,
    HDC hicTargetDev,
    DVEXTENTINFO* pExtentInfo,
    LPSIZEL psizel);

Parametry

dwAspect
Určuje, jak má být objekt reprezentován. Reprezentace zahrnuje obsah, ikonu, miniaturu nebo tištěný dokument. Platné hodnoty jsou převzaty z výčtu DVASPECT nebo DVASPECT2.

lindex
Část objektu, který je zajímavý. Aktuálně je platný pouze -1.

Ptd
Odkazuje na strukturu DVTARGETDEVICE definující cílové zařízení, pro které má být vrácena velikost objektu.

hicTargetDev
Určuje kontext informací pro cílové zařízení označené parametrem ptd , ze kterého může objekt extrahovat metriky zařízení a otestovat schopnosti zařízení. Pokud ptd je NULL, objekt by měl ignorovat hodnotu v hicTargetDev parametru.

pExtentInfo
Odkazuje na DVEXTENTINFO strukturu, která určuje velikost dat. Struktura DVEXTENTINFO je:

typedef struct tagExtentInfo
{
    UINT cb;
    DWORD dwExtentMode;
    SIZEL sizelProposed;
}   DVEXTENTINFO;

Člen struktury dwExtentMode může mít jednu ze dvou hodnot:

  • DVEXTENT_CONTENT Inquire how big the control be to exactly fit content (snap-to-size)

  • DVEXTENT_INTEGRAL Při změně velikosti předejte navrhované velikosti ovládacímu prvku

psizel
Odkazuje na data velikosti vrácená ovládacím prvek. Vrácená data velikosti jsou nastavena na hodnotu -1 pro libovolnou dimenzi, která nebyla upravena.

Návratová hodnota

Nenulové, pokud se úspěšně vrátí nebo upraví velikost; jinak 0.

Poznámky

Tuto funkci přepište tak, aby vrátila velikost zobrazení objektu nejblíže navrhované velikosti a ex režim stanu ve struktuřeDVEXTENTINFO. Výchozí implementace vrátí hodnotu FALSE a neprovádí žádné úpravy velikosti.

COleControl::OnGetPredefinedStrings

Volá se rozhraním k získání sady předdefinovaných řetězců představujících možné hodnoty pro vlastnost.

virtual BOOL OnGetPredefinedStrings(
    DISPID dispid,
    CStringArray* pStringArray,
    CDWordArray* pCookieArray);

Parametry

dispid
ID odeslání vlastnosti ovládacího prvku.

pStringArray
Řetězcové pole, které se má vyplnit návratovými hodnotami.

pCookieArray
Pole DWORD, které se má vyplnit vrácenými hodnotami.

Návratová hodnota

Nenulové, pokud byly prvky přidány do pStringArray a pCookieArray.

Poznámky

Tuto funkci přepište, pokud má ovládací prvek vlastnost se sadou možných hodnot, které mohou být reprezentovány řetězci. Pro každý prvek přidaný do pStringArray byste měli přidat odpovídající "cookie" element do pCookieArray. Tyto hodnoty "cookie" mohou být později předány rozhraním do COleControl::OnGetPredefinedValue funkce.

COleControl::OnGetPredefinedValue

Volá se rozhraním k získání hodnoty odpovídající jednomu z předdefinovaných řetězců, které byly dříve vráceny přepsáním COleControl::OnGetPredefinedStrings.

virtual BOOL OnGetPredefinedValue(
    DISPID dispid,
    DWORD dwCookie,
    VARIANT* lpvarOut);

Parametry

dispid
ID odeslání vlastnosti ovládacího prvku.

dwCookie
Hodnota souboru cookie, která byla dříve vrácena přepsáním souboru COleControl::OnGetPredefinedStrings.

lpvarOut
Ukazatel na VARIANT strukturu, prostřednictvím které bude vrácena hodnota vlastnosti.

Návratová hodnota

Nenulové, pokud se hodnota vrátila v lpvarOutu; jinak 0.

COleControl::OnGetViewExtent

Volá rozhraní v reakci na požadavek IViewObject2::GetExtent kontejneru.

virtual BOOL OnGetViewExtent(
    DWORD dwDrawAspect,
    LONG lindex,
    DVTARGETDEVICE* ptd,
    LPSIZEL lpsizel);

Parametry

dwDrawAspect
DWORD popisující, který tvar nebo aspekt objektu se má zobrazit. Platné hodnoty jsou převzaty z výčtu DVASPECT nebo DVASPECT2.

lindex
Část objektu, který je zajímavý. Aktuálně je platný pouze -1.

Ptd
Odkazuje na strukturu DVTARGETDEVICE definující cílové zařízení, pro které má být vrácena velikost objektu.

lpsizel
Odkazuje na umístění, kde je vrácena velikost objektu.

Návratová hodnota

Nenulové, pokud jsou informace o rozsahu úspěšně vráceny; jinak 0.

Poznámky

Tuto funkci přepište, pokud ovládací prvek používá výkres se dvěma průchody a jeho neprůhledné a průhledné části mají různé rozměry.

COleControl::OnGetViewRect

Volá se rozhraním v reakci na požadavek kontejneru IViewObjectEx::GetRect .

virtual BOOL OnGetViewRect(DWORD dwAspect, LPRECTL pRect);

Parametry

dwAspect
DWORD popisující, který tvar nebo aspekt objektu se má zobrazit. Platné hodnoty jsou převzaty z výčtu DVASPECT nebo DVASPECT2:

  • DVASPECT_CONTENT ohraničující obdélník celého objektu. Levý horní roh v počátku objektu a jeho velikost se rovná rozsahu vráceného objektem GetViewExtent.

  • DVASPECT_OPAQUE Objekty s obdélníkovou neprůhláhlou oblastí vrátí tento obdélník. Ostatní selžou.

  • DVASPECT_TRANSPARENT Obdélník pokrývající všechny průhledné nebo nepravidelné části.

pRect
Odkazuje na strukturu RECTL určující obdélník, ve kterém má být objekt nakreslen. Tento parametr řídí umístění a roztažení objektu.

Návratová hodnota

Nenulové, pokud je velikost obdélníku objektu úspěšně vrácena; jinak 0.

Poznámky

Velikost objektu se převede OnGetViewRect na obdélník začínající na konkrétní pozici (výchozí hodnota je levý horní roh zobrazení). Tuto funkci přepište, pokud ovládací prvek používá výkres se dvěma průchody a jeho neprůhledné a průhledné části mají různé rozměry.

COleControl::OnGetViewStatus

Volá se rozhraním v reakci na požadavek kontejneru IViewObjectEx::GetViewStatus .

virtual DWORD OnGetViewStatus();

Návratová hodnota

Jedna z hodnot výčtu VIEWSTATUS v případě úspěchu; jinak 0. Možné hodnoty jsou libovolná kombinace následujících:

Název Popis
VIEWSTATUS_OPAQUE Objekt je zcela neprůžný. Pokud tento bit není nastaven, objekt obsahuje průhledné části. Tento bit se vztahuje pouze na aspekty související s obsahem, nikoli na DVASPECT_ICON nebo DVASPECT_DOCPRINT.
VIEWSTATUS_SOLIDBKGND Objekt má plné pozadí (skládající se z plné barvy, nikoli vzoru štětce). Tento bit je smysluplný jenom v případě, že je nastavená VIEWSTATUS_OPAQUE a vztahuje se pouze na aspekty související s obsahem, nikoli na DVASPECT_ICON nebo DVASPECT_DOCPRINT.
VIEWSTATUS_DVASPECTOPAQUE Objekt podporuje DVASPECT_OPAQUE. Všechny IViewObjectEx metody, které berou výkres aspekt jako parametr lze volat s tímto aspektem.
VIEWSTATUS_DVASPECTTRANSPARENT Objekt podporuje DVASPECT_TRANSPARENT. Všechny IViewObjectEx metody, které přebírají aspekt výkresu jako parametr, lze volat s tímto aspektem.

Poznámky

Tuto funkci přepište, pokud ovládací prvek používá výkres se dvěma průchody. Výchozí implementace vrátí VIEWSTATUS_OPAQUE.

COleControl::OnHideToolBars

Volá se rozhraním, když je ovládací prvek deaktivován uživatelským rozhraním.

virtual void OnHideToolBars();

Poznámky

Implementace by měla skrýt všechny panely nástrojů zobrazené pomocí OnShowToolbars.

COleControl::OnInactiveMouseMove

Volal kontejner pro neaktivní objekt pod ukazatelem myši na přijetí WM_MOUSEMOVE zprávy.

virtual void OnInactiveMouseMove(
    LPCRECT lprcBounds,
    long x,
    long y,
    DWORD dwKeyState);

Parametry

lprcBounds
Objekt ohraničující obdélník v souřadnicích klienta obsahujícího okna. Informuje objekt o přesné poloze a velikosti na obrazovce při přijetí WM_MOUSEMOVE zprávy.

x
Souřadnice x umístění myši v souřadnicích klienta obsahujícího okna.

y
Souřadnice y umístění myši v souřadnicích klienta obsahujícího okna.

dwKeyState
Identifikuje aktuální stav modifikačních kláves klávesnice na klávesnici. Platné hodnoty můžou být kombinací libovolného MK_CONTROL příznaků, MK_SHIFT, MK_ALT, MK_BUTTON, MK_LBUTTON, MK_MBUTTON a MK_RBUTTON.

Poznámky

Všimněte si, že souřadnice klienta okna (pixely) slouží k předání pozice kurzoru myši. To je možné předáním ohraničujícího obdélníku objektu ve stejném souřadnicovém systému.

COleControl::OnInactiveSetCursor

Volal kontejner pro neaktivní objekt pod ukazatelem myši na přijetí WM_SETCURSOR zprávy.

virtual BOOL OnInactiveSetCursor(
    LPCRECT lprcBounds,
    long x,
    long y,
    DWORD dwMouseMsg,
    BOOL bSetAlways);

Parametry

lprcBounds
Objekt ohraničující obdélník v souřadnicích klienta obsahujícího okna. Informuje objekt o přesné poloze a velikosti na obrazovce při přijetí WM_SETCURSOR zprávy.

x
Souřadnice x umístění myši v souřadnicích klienta obsahujícího okna.

y
Souřadnice y umístění myši v souřadnicích klienta obsahujícího okna.

dwMouseMsg
Identifikátor zprávy myši, pro kterou došlo k WM_SETCURSOR.

bSetAlways
Určuje, zda objekt musí nastavit kurzor. Pokud true, objekt musí nastavit kurzor; pokud NEPRAVDA, kurzor není povinen nastavit kurzor a měl by vrátit S_FALSE v takovém případě.

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

Poznámky

Všimněte si, že souřadnice klienta okna (pixely) slouží k předání pozice kurzoru myši. To je možné předáním ohraničujícího obdélníku objektu ve stejném souřadnicovém systému.

COleControl::OnKeyDownEvent

Volá se rozhraním po zpracování události KeyDown na skladě.

virtual void OnKeyDownEvent(
    USHORT nChar,
    USHORT nShiftState);

Parametry

nChar
Hodnota kódu virtuálního klíče stisknuté klávesy. Seznam standardních kódů virtuálních klíčů najdete v tématu Winuser.h

nShiftState
Obsahuje kombinaci následujících příznaků:

  • SHIFT_MASK během akce se stiskla klávesa SHIFT.

  • CTRL_MASK při akci se stiskla klávesa CTRL.

  • ALT_MASK během akce se stiskla klávesa ALT.

Poznámky

Tuto funkci přepište, pokud váš ovládací prvek potřebuje přístup k klíčovým informacím po spuštění události.

COleControl::OnKeyPressEvent

Volal rámec po akci KeyPress událostí.

virtual void OnKeyPressEvent(USHORT nChar);

Parametry

nChar
Obsahuje hodnotu kódu virtuálního klíče stisknuté klávesy. Seznam standardních kódů virtuálních klíčů najdete v tématu Winuser.h

Poznámky

Všimněte si, že kontejner mohl změnit hodnotu nChar .

Tuto funkci přepište, pokud chcete, aby se po této události zobrazilo oznámení.

COleControl::OnKeyUpEvent

Volá se rozhraním po zpracování události KeyDown na skladě.

virtual void OnKeyUpEvent(
    USHORT nChar,
    USHORT nShiftState);

Parametry

nChar
Hodnota kódu virtuálního klíče stisknuté klávesy. Seznam standardních kódů virtuálních klíčů najdete v tématu Winuser.h

nShiftState
Obsahuje kombinaci následujících příznaků:

  • SHIFT_MASK během akce se stiskla klávesa SHIFT.

  • CTRL_MASK při akci se stiskla klávesa CTRL.

  • ALT_MASK během akce se stiskla klávesa ALT.

Poznámky

Tuto funkci přepište, pokud váš ovládací prvek potřebuje přístup k klíčovým informacím po spuštění události.

COleControl::OnMapPropertyToPage

Volá se rozhraním k získání ID třídy stránky vlastnosti, která implementuje úpravy zadané vlastnosti.

virtual BOOL OnMapPropertyToPage(
    DISPID dispid,
    LPCLSID lpclsid,
    BOOL* pbPageOptional);

Parametry

dispid
ID odeslání vlastnosti ovládacího prvku.

lpclsid
Ukazatel na CLSID strukturu, prostřednictvím které bude vráceno ID třídy.

pbPageOptional
Vrátí indikátor, zda je použití zadané stránky vlastností volitelné.

Návratová hodnota

Nenulové, pokud bylo ID třídy vráceno v lpclsid; jinak 0.

Poznámky

Tuto funkci přepište tak, aby poskytovala způsob, jak vyvolat stránky vlastností ovládacího prvku z prohlížeče vlastností kontejneru.

COleControl::OnMnemonic

Volá se rozhraním, když kontejner zjistil, že byl stisknut měmonic klíč ovládacího prvku OLE.

virtual void OnMnemonic(LPMSG pMsg);

Parametry

pMsg
Ukazatel na zprávu systému Windows vygenerovanou klávesou mnemonic stiskněte.

COleControl::OnProperties

Volá se rozhraním, když kontejner vyvolá příkaz vlastností ovládacího prvku.

virtual BOOL OnProperties(
    LPMSG lpMsg,
    HWND hWndParent,
    LPCRECT lpRect);

Parametry

lpMsg
Ukazatel na zprávu Systému Windows, která vyvolala operaci.

hWndParent
Popisovač nadřazeného okna ovládacího prvku.

lpRect
Ukazatel na obdélník používaný ovládacím prvku v kontejneru.

Návratová hodnota

Nenulové, pokud je volání úspěšné; jinak 0.

Poznámky

Výchozí implementace zobrazí dialogové okno modální vlastnosti.

Pomocí této funkce můžete také způsobit zobrazení stránek vlastností ovládacího prvku. Proveďte volání OnProperties funkce a předejte popisovač nadřazeného prvku v hWndParent parametru. V tomto případě se hodnoty parametrů lpMsg a lpRect ignorují.

COleControl::OnQueryHitPoint

Volá se rozhraním v reakci na požadavek kontejneru IViewObjectEx::QueryHitPoint .

virtual BOOL OnQueryHitPoint(
    DWORD dwAspect,
    LPCRECT pRectBounds,
    POINT ptlLoc,
    LONG lCloseHint,
    DWORD* pHitResult);

Parametry

dwAspect
Určuje, jak je objekt reprezentován. Platné hodnoty jsou převzaty z výčtu DVASPECT nebo DVASPECT2.

pRectBounds
Ukazatel na RECT strukturu určující ohraničující obdélník oblasti klienta ovládacího prvku OLE.

ptlLoc
Ukazatel na POINT strukturu určující bod, který se má zkontrolovat pro dosažení. Bod je určen v souřadnicích klientské oblasti OLE.

lCloseHint
Vzdálenost, která definuje "blízko" bodu, u kterého se kontroluje dosažení.

pHitResult
Ukazatel na výsledek dotazu hitu. Jedna z následujících hodnot:

  • HITRESULT_OUTSIDE ptlLoc je mimo objekt OLE a není zavřen.

  • HITRESULT_TRANSPARENT ptlLoc je v mezích objektu OLE, ale není blízko obrázku. Například bod uprostřed průhledného kruhu může být HITRESULT_TRANSPARENT.

  • HITRESULT_CLOSE ptlLoc je uvnitř nebo mimo objekt OLE, ale je dostatečně blízko objektu, který má být považován za uvnitř. Tuto hodnotu mohou použít malé, tenké nebo podrobné objekty. I když je bod mimo ohraničující obdélník objektu, může být stále zavřený (to je potřeba pro stisknutí malých objektů).

  • HITRESULT_HIT ptlLoc je uvnitř obrázku objektu.

Návratová hodnota

Nenulové, pokud se výsledek hitu úspěšně vrátí; jinak 0. Hit je překrytí s oblastí zobrazení ovládacího prvku OLE.

Poznámky

Dotazuje, zda se obdélník zobrazení objektu překrývají s daným bodem (dosáhne bodu). QueryHitPoint lze přepsat k testování hitů pro neúhelníkové objekty.

COleControl::OnQueryHitRect

Volá se rozhraním v reakci na požadavek kontejneru IViewObjectEx::QueryHitRect .

virtual BOOL OnQueryHitRect(
    DWORD dwAspect,
    LPCRECT pRectBounds,
    LPCRECT prcLoc,
    LONG lCloseHint,
    DWORD* pHitResult);

Parametry

dwAspect
Určuje, jak má být objekt reprezentován. Platné hodnoty jsou převzaty z výčtu DVASPECT nebo DVASPECT2.

pRectBounds
Ukazatel na RECT strukturu určující ohraničující obdélník oblasti klienta ovládacího prvku OLE.

prcLoc
Ukazatel na RECT strukturu určující obdélník, který se má zkontrolovat pro hit (překrývající se s obdélníkem objektu), vzhledem k levému hornímu rohu objektu.

lCloseHint
Nepoužívá se.

pHitResult
Ukazatel na výsledek dotazu hitu. Jedna z následujících hodnot:

  • HITRESULT_OUTSIDE žádný bod v obdélníku není nalezen objektem OLE.

  • HITRESULT_HIT alespoň jeden bod v obdélníku by byl hit na objektu.

Návratová hodnota

Nenulové, pokud se výsledek hitu úspěšně vrátí; jinak 0.

Poznámky

Dotazuje, jestli se obdélník zobrazení objektu překrývá libovolným bodem v daném obdélníku (dosáhne obdélníku). QueryHitRect lze přepsat k testování hitů pro neúhelníkové objekty.

COleControl::OnRenderData

Volá se rozhraním pro načtení dat v zadaném formátu.

virtual BOOL OnRenderData(
    LPFORMATETC lpFormatEtc,
    LPSTGMEDIUM lpStgMedium);

Parametry

lpFormatEtc
Odkazuje na strukturu FORMATETC určující formát, ve kterém jsou požadovány informace.

lpStgMedium
Odkazuje na strukturu STGMEDIUM , ve které se mají vrátit data.

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

Poznámky

Zadaný formát je dříve umístěn v řídicí objekt pomocí DelayRenderData nebo DelayRenderFileData členské funkce pro zpožděné vykreslování. Výchozí implementace této funkce volá OnRenderFileData nebo OnRenderGlobalData, v uvedeném pořadí, pokud zadané médium úložiště je soubor nebo paměť. Pokud je požadovaný formát CF_METAFILEPICT nebo trvalý formát sady vlastností, výchozí implementace vykreslí příslušná data a vrátí nenulové. V opačném případě vrátí hodnotu 0 a nic nedělá.

Pokud je lpStgMedium-tymed> TYMED_NULL, musí být funkce STGMEDIUM přidělena a vyplněna podle zadání lpFormatEtc-tymed>. Pokud není TYMED_NULL, měl by být soubor STGMEDIUM vyplněný daty.

Tuto funkci přepište tak, aby poskytovala vaše data v požadovaném formátu a médiu. V závislosti na datech můžete místo toho chtít přepsat jednu z dalších verzí této funkce. Pokud jsou vaše data malá a pevná, přepište OnRenderGlobalData. Pokud jsou vaše data v souboru nebo mají proměnnou velikost, přepište OnRenderFileData.

Další informace naleznete v FORMATETC tématu a STGMEDIUM struktury v sadě Windows SDK.

COleControl::OnRenderFileData

Volá se rozhraním pro načtení dat v zadaném formátu, když je médium úložiště soubor.

virtual BOOL OnRenderFileData(
    LPFORMATETC lpFormatEtc,
    CFile* pFile);

Parametry

lpFormatEtc
Odkazuje na strukturu FORMATETC určující formát, ve kterém jsou požadovány informace.

pFile
Odkazuje na objekt CFile , ve kterém se mají data vykreslit.

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

Poznámky

Zadaný formát je dříve umístěný v řídicím objektu pomocí členské funkce DelayRenderData pro zpožděné vykreslování. Výchozí implementace této funkce jednoduše vrátí hodnotu FALSE.

Tuto funkci přepište tak, aby poskytovala vaše data v požadovaném formátu a médiu. V závislosti na datech můžete místo toho přepsat jednu z dalších verzí této funkce. Pokud chcete zpracovat více úložných médií, přepište OnRenderData. Pokud jsou vaše data v souboru nebo mají proměnnou velikost, přepište OnRenderFileData.

Další informace naleznete ve FORMATETC struktuře v sadě Windows SDK.

COleControl::OnRenderGlobalData

Volá se rozhraním pro načtení dat v zadaném formátu, pokud je zadané médium úložiště globální paměť.

virtual BOOL OnRenderGlobalData(
    LPFORMATETC lpFormatEtc,
    HGLOBAL* phGlobal);

Parametry

lpFormatEtc
Odkazuje na strukturu FORMATETC určující formát, ve kterém jsou požadovány informace.

PhGlobal
Odkazuje na popisovač na globální paměť, ve které se mají data vrátit. Pokud není přidělena žádná paměť, může mít tento parametr hodnotu NULL.

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

Poznámky

Zadaný formát je dříve umístěný v řídicím objektu pomocí členské funkce DelayRenderData pro zpožděné vykreslování. Výchozí implementace této funkce jednoduše vrátí hodnotu FALSE.

Pokud je phGlobal NULL, měl by být přidělen nový HGLOBAL a vrácen v phGlobal. V opačném případě by měl být HGLOBAL určený phGlobal vyplněn daty. Množství dat umístěných v HGLOBAL nesmí překročit aktuální velikost paměťového bloku. Blok navíc nelze převést na větší velikost.

Tuto funkci přepište tak, aby poskytovala vaše data v požadovaném formátu a médiu. V závislosti na datech můžete místo toho chtít přepsat jednu z dalších verzí této funkce. Pokud chcete zpracovat více úložných médií, přepište OnRenderData. Pokud jsou vaše data v souboru nebo mají proměnnou velikost, přepište OnRenderFileData.

Další informace naleznete ve FORMATETC struktuře v sadě Windows SDK.

COleControl::OnResetState

Volané architekturou, pokud by vlastnosti ovládacího prvku měly být nastaveny na jejich výchozí hodnoty.

virtual void OnResetState();

Poznámky

Výchozí implementace volá DoPropExchange a předává CPropExchange objekt, který způsobí, že vlastnosti budou nastaveny na jejich výchozí hodnoty.

Zapisovač ovládacího prvku může vložit inicializační kód pro ovládací prvek OLE v tomto přepisovatelném. Tato funkce je volána, když IPersistStream::Load nebo IPersistStorage::Load selže nebo IPersistStreamInit::InitNew nebo IPersistStorage::InitNew je volán bez prvního volání nebo IPersistStorage::LoadIPersistStream::Load .

COleControl::OnSetClientSite

Volá se rozhraním, pokud kontejner volal funkci ovládacího prvku IOleControl::SetClientSite .

virtual void OnSetClientSite();

Poznámky

Ve výchozím nastavení zkontroluje, OnSetClientSite zda jsou vlastnosti cesty k datům načteny a pokud ano, volání DoDataPathPropExchange.

Tuto funkci přepište tak, aby všechna zvláštní zpracování tohoto oznámení. Konkrétně by přepsání této funkce mělo volat základní třídu.

COleControl::OnSetData

Volá se architekturou, která nahradí data ovládacího prvku zadanými daty.

virtual BOOL OnSetData(
    LPFORMATETC lpFormatEtc,
    LPSTGMEDIUM lpStgMedium,
    BOOL bRelease);

Parametry

lpFormatEtc
Ukazatel na strukturu FORMATETC určující formát dat.

lpStgMedium
Ukazatel na strukturu STGMEDIUM , ve které se data nacházejí.

bRelease
TRUE, pokud by ovládací prvek měl uvolnit úložné médium; NEPRAVDA, pokud by ovládací prvek neměl uvolnit médium úložiště.

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

Poznámky

Pokud jsou data ve formátu trvalé sady vlastností, výchozí implementace odpovídajícím způsobem upraví stav ovládacího prvku. Jinak výchozí implementace nic nedělá. Pokud je hodnota bRelease PRAVDA, pak se provede volání ReleaseStgMedium , jinak ne.

Přepište tuto funkci, aby se data ovládacího prvku nahradila zadanými daty.

Další informace naleznete v FORMATETC tématu a STGMEDIUM struktury v sadě Windows SDK.

COleControl::OnSetExtent

Volá se architekturou, když je potřeba změnit rozsah ovládacího prvku v důsledku volání IOleObject::SetExtent.

virtual BOOL OnSetExtent(LPSIZEL lpSizeL);

Parametry

lpSizeL
Ukazatel na SIZEL strukturu, která používá dlouhá celá čísla k reprezentaci šířky a výšky ovládacího prvku vyjádřené v jednotkách HIMETRIC.

Návratová hodnota

Nenulové, pokud byla změna velikosti přijata; jinak 0.

Poznámky

Výchozí implementace zpracovává změnu velikosti rozsahu ovládacího prvku. Pokud je ovládací prvek aktivní na místě, provede se volání kontejneru OnPosRectChanged .

Přepište tuto funkci tak, aby změnila výchozí změnu velikosti ovládacího prvku.

COleControl::OnSetObjectRects

Volá se rozhraním pro implementaci volání IOleInPlaceObject::SetObjectRects.

virtual BOOL OnSetObjectRects(
    LPCRECT lpRectPos,
    LPCRECT lpRectClip);

Parametry

lpRectPos
Ukazatel na RECT strukturu označující novou pozici a velikost ovládacího prvku vzhledem ke kontejneru.

lpRectClip
Ukazatel na RECT strukturu označující obdélníkovou oblast, na kterou má být ovládací prvek oříznut.

Návratová hodnota

Nenulové, pokud byla změna umístění přijata; jinak 0.

Poznámky

Výchozí implementace automaticky zpracuje změnu umístění a změnu velikosti ovládacího okna a vrátí hodnotu TRUE.

Přepište tuto funkci tak, aby změnila výchozí chování této funkce.

COleControl::OnShowToolBars

Volá se rozhraním při aktivaci ovládacího prvku uživatelského rozhraní.

virtual void OnShowToolBars();

Poznámky

Výchozí implementace nic nedělá.

COleControl::OnTextChanged

Volá se rozhraním, když se změnila hodnota vlastnosti Titulek akcie nebo Text.

virtual void OnTextChanged();

Poznámky

Výchozí volání InvalidateControlimplementace .

Tuto funkci přepište, pokud chcete oznámení po změně této vlastnosti.

COleControl::OnWindowlessMessage

Volá se rozhraním v reakci na požadavek kontejneru IOleInPlaceObjectWindowless::OnWindowMessage .

virtual BOOL OnWindowlessMessage(
    UINT msg,
    WPARAM wParam,
    LPARAM lParam,
    LRESULT* plResult);

Parametry

Msg
Identifikátor zprávy předaný systémem Windows.

wParam
Jak bylo předáno systémem Windows. Určuje další informace specifické pro zprávu. Obsah tohoto parametru závisí na hodnotě parametru msg .

lParam
Jak bylo předáno systémem Windows. Určuje další informace specifické pro zprávu. Obsah tohoto parametru závisí na hodnotě parametru msg .

plResult
Kód výsledku systému Windows. Určuje výsledek zpracování zprávy a závisí na odeslané zprávě.

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

Poznámky

Zpracovává zprávy oken pro ovládací prvky bez oken. COleControlOnWindowlessMessage měly by se používat pro zprávy oken jiné než zprávy myši a zprávy klávesnice. COleControl poskytuje SetCapture a SetFocus speciálně pro získání zachycení myši a klávesnice fokus pro objekty OLE bez oken.

Vzhledem k tomu, že objekty bez oken nemají okno, potřebují mechanismus, který jim umožní odesílat zprávy kontejneru. Objekt OLE bez oken získává zprávy z kontejneru prostřednictvím OnWindowMessage metody v IOleInPlaceObjectWindowless rozhraní (rozšíření IOleInPlaceObject pro podporu bez oken). OnWindowMessage nepřebírají HWND parametr.

COleControl::P arentToClient

Přeloží souřadnice pPointu na souřadnice klienta.

virtual UINT ParentToClient(
    LPCRECT lprcBounds,
    LPPOINT pPoint,
    BOOL bHitTest = FALSE) const;

Parametry

lprcBounds
Ukazatel na hranice ovládacího prvku OLE v kontejneru. Ne klientská oblast, ale oblast celého ovládacího prvku včetně ohraničení a posuvníků.

pPoint
Ukazatel na nadřazený (kontejner) bod, který se má přeložit na souřadnice klientské oblasti ovládacího prvku.

bHitTest
Určuje, jestli se má provést testování, nebo ne.

Návratová hodnota

Pokud bHitTest je FALSE, vrátí HTNOWHERE. Pokud bHitTest je PRAVDA, vrátí umístění, ve kterém nadřazený (kontejner) bod přistál v klientské oblasti ovládacího prvku OLE a je jednou z následujících hodnot hit-test myši:

  • HTBORDER V ohraničení okna, které nemá ohraničení velikosti.

  • HTBOTTOM V dolní vodorovné hranici okna.

  • HTBOTTOMLEFT V levém dolním rohu ohraničení okna.

  • HTBOTTOMRIGHT V pravém dolním rohu ohraničení okna.

  • HTCAPTION V záhlaví oblasti.

  • HTCLIENT v klientské oblasti.

  • HTERROR Na pozadí obrazovky nebo na dělicí čáře mezi okny (stejná jako HTNOWHERE s tím rozdílem, že DefWndProc funkce Windows vytvoří systémovou pípnutí označující chybu).

  • HTGROWBOX V poli velikosti.

  • HTHSCROLL Na vodorovném posuvníku.

  • HTLEFT V levém okraji okna.

  • HTMAXBUTTON V maximalizovat tlačítko.

  • HTMENU V oblasti nabídky.

  • HTMINBUTTON V tlačítku Minimalizovat.

  • HTNOWHERE Na pozadí obrazovky nebo na dělicí čáře mezi okny.

  • HTREDUCE V tlačítku Minimalizovat

  • HTRIGHT V pravém okraji okna.

  • HTSIZE V poli velikosti (stejné jako HTGROWBOX).

  • HTSYSMENU V nabídce ovládacích prvků nebo v tlačítku Zavřít v podřízeném okně.

  • HTTOP V horním vodorovném ohraničení okna.

  • HTTOPLEFT V levém horním rohu ohraničení okna.

  • HTTOPRIGHT V pravém horním rohu ohraničení okna.

  • HTTRANSPARENT V okně, které je aktuálně pokryto jiným oknem.

  • HTVSCROLL Na svislém posuvníku.

  • HTZOOM v tlačítku Maximalizovat

Poznámky

Vstupní pPoint je relativní vzhledem k počátku nadřazeného objektu (levý horní roh kontejneru). Na výstupním pPointu je relativní původ klientské oblasti ovládacího prvku OLE (horní levý roh klientské oblasti ovládacího prvku).

COleControl::P ostModalDialog

Upozorní kontejner, že bylo zavřené modální dialogové okno.

void PostModalDialog(HWND hWndParent = NULL);

Parametry

hWndParent
Popisovač nadřazeného okna modálního dialogového okna

Poznámky

Volání této funkce po zobrazení libovolného modálního dialogového okna Tuto funkci musíte volat, aby kontejner mohl povolit všechna okna nejvyšší úrovně zakázaná PreModalDialog. Tato funkce by měla být spárována s voláním PreModalDialog.

COleControl::P reModalDialog

Upozorní kontejner, že se bude zobrazovat modální dialogové okno.

void PreModalDialog(HWND hWndParent = NULL);

Parametry

hWndParent
Popisovač nadřazeného okna modálního dialogového okna

Poznámky

Před zobrazením modálního dialogového okna volejte tuto funkci. Tuto funkci musíte volat, aby kontejner mohl zakázat všechna okna nejvyšší úrovně. Po zobrazení modálního dialogového okna je nutné volat PostModalDialog.

COleControl::RecreateControlWindow

Zničí a znovu vytvoří okno ovládacího prvku.

void RecreateControlWindow();

Poznámky

To může být nutné, pokud potřebujete změnit bity stylu okna.

COleControl::Refresh

Vynutí překreslení ovládacího prvku OLE.

void Refresh();

Poznámky

Tato funkce je podporována COleControl základní třídou jako burzovní metoda s názvem Refresh. To umožňuje uživatelům vašeho ovládacího prvku OLE překreslit ovládací prvek v určitém čase. Další informace o této metodě naleznete v článku Ovládací prvky ActiveX: Metody.

COleControl::ReleaseCapture

Uvolní zachytávání myší.

BOOL ReleaseCapture();

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

Poznámky

Pokud ovládací prvek aktuálně obsahuje zachytávání myši, uvolní se zachycení. V opačném případě tato funkce nemá žádný vliv.

COleControl::ReleaseDC

Uvolní kontext zařízení pro zobrazení kontejneru ovládacího prvku bez oken, který uvolní kontext zařízení pro použití jinými aplikacemi.

int ReleaseDC(CDC* pDC);

Parametry

pDC
Identifikuje kontext zařízení kontejneru, který se má vydat.

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

Poznámky

Aplikace musí volat ReleaseDC pro každé volání GetDC.

COleControl::ReparentControlWindow

Nastaví nadřazený prvek ovládacího prvku.

virtual void ReparentControlWindow(
    HWND hWndOuter,
    HWND hWndParent);

Parametry

hWndOuter
Popisovač ovládacího okna.

hWndParent
Popisovač nového nadřazeného okna.

Poznámky

Voláním této funkce obnovíte nadřazený prvek ovládacího okna.

COleControl::ResetStockProps

Inicializuje stav COleControl vlastností akcií na výchozí hodnoty.

void ResetStockProps();

Poznámky

Vlastnosti jsou: Vzhled, BackColor, BorderStyle, Caption, Enabled, Font, ForeColor, hWnd a Text. Popis vlastností akcií naleznete v tématu Ovládací prvky ActiveX: Přidání vlastností akcií.

Můžete zlepšit výkon binární inicializace ovládacího prvku pomocí ResetStockProps a ResetVersion přepsání COleControl::OnResetState. Viz příklad níže. Další informace o optimalizaci inicializace naleznete v tématu Ovládací prvky ActiveX: Optimalizace.

Příklad

void CMyAxCtrl::OnResetState()
{
   ResetVersion(MAKELONG(_wVerMinor, _wVerMajor));
   ResetStockProps();

   // initialize custom properties here
}

COleControl::ResetVersion

Inicializuje číslo verze na zadanou hodnotu.

void ResetVersion(DWORD dwVersionDefault);

Parametry

dwVersionDefault
Číslo verze, které má být přiřazeno ovládacímu prvku.

Poznámky

Můžete zlepšit výkon binární inicializace ovládacího prvku pomocí ResetVersion a ResetStockProps přepsání COleControl::OnResetState. Podívejte se na příklad na ResetStockProps. Další informace o optimalizaci inicializace naleznete v tématu Ovládací prvky ActiveX: Optimalizace.

COleControl::ScrollWindow

Umožňuje objekt OLE bez oken posunout oblast v rámci jejího aktivního obrázku na místě na obrazovce.

void ScrollWindow(
    int xAmount,
    int yAmount,
    LPCRECT lpRect = NULL,
    LPCRECT lpClipRect = NULL);

Parametry

xAmount
Určuje množství vodorovného posouvání v jednotkách zařízení. Tento parametr musí být záporná hodnota, která se má posunout doleva.

yAmount
Určuje velikost vertikálního posouvání v jednotkách zařízení. Tento parametr musí být zápornou hodnotou, která se má posunout nahoru.

lpRect
Odkazuje na objekt CRect nebo RECT struktury, která určuje část klientské oblasti objektu OLE, která se má posunout v souřadnicích klienta obsahujícího okna. Pokud je hodnota lpRect NULL, posune se celá oblast klienta OLE objektu.

lpClipRect
Odkazuje na CRect objekt nebo RECT strukturu, která určuje obdélník, na který se má vystřižovat. Posunují se pouze pixely uvnitř obdélníku. Bity mimo obdélník nejsou ovlivněny, i když jsou v obdélníku lpRect . Pokud je lpClipRect NULL, na obdélníku posuvníku se neprovádí žádné výřezy.

COleControl::SelectFontObject

Vybere písmo do kontextu zařízení.

CFont* SelectFontObject(
    CDC* pDC,
    CFontHolder& fontHolder);

Parametry

pDC
Ukazatel na objekt kontextu zařízení.

fontHolder
Odkaz na objekt CFontHolder představující písmo, které se má vybrat.

Návratová hodnota

Ukazatel na dříve vybrané písmo Jakmile volající dokončí všechny operace kreslení, které používají fontHolder, měl by znovu vybrat dříve vybrané písmo tak, že ho předá jako parametr cdC ::SelectObject.

COleControl::SelectStockFont

Vybere vlastnost Font stock do kontextu zařízení.

CFont* SelectStockFont(CDC* pDC);

Parametry

pDC
Kontext zařízení, do kterého bude písmo vybráno.

Návratová hodnota

Ukazatel na dříve vybraný CFont objekt. K výběru tohoto písma zpět do kontextu zařízení byste měli použít CDC::SelectObject , jakmile budete hotovi.

COleControl::SerializeExtent

Serializuje nebo inicializuje stav místa zobrazení přiděleného ovládacímu prvku.

void SerializeExtent(CArchive& ar);

Parametry

ar
CArchive Objekt pro serializaci do nebo z.

Poznámky

Výkon binární trvalosti ovládacího prvku můžete zlepšit pomocí , SerializeExtentSerializeStockPropsa SerializeVersion přepsání COleControl::Serialize. Viz příklad níže. Další informace o optimalizaci inicializace naleznete v tématu Ovládací prvky ActiveX: Optimalizace.

Příklad

void CMyAxCtrl::Serialize(CArchive &ar)
{
   SerializeVersion(ar, MAKELONG(_wVerMinor, _wVerMajor));
   SerializeExtent(ar);
   SerializeStockProps(ar);

   if (ar.IsStoring())
   { // storing code
   }
   else
   { // loading code
   }
}

COleControl::SerializeStockProps

Serializuje nebo inicializuje stav COleControl vlastností akcie: Vzhled, BackColor, BorderStyle, Caption, Enabled, Font, ForeColor a Text.

void SerializeStockProps(CArchive& ar);

Parametry

ar
CArchive Objekt pro serializaci do nebo z.

Poznámky

Popis vlastností akcií naleznete v tématu Ovládací prvky ActiveX: Přidání vlastností akcií.

Výkon binární trvalosti ovládacího prvku můžete zlepšit pomocí , SerializeStockPropsSerializeExtenta SerializeVersion přepsání COleControl::Serialize. Příklad najdete v kódu serializeExtent. Další informace o optimalizaci inicializace naleznete v tématu Ovládací prvky ActiveX: Optimalizace.

COleControl::SerializeVersion

Serializuje nebo inicializuje stav informací o verzi ovládacího prvku.

DWORD SerializeVersion(
    CArchive& ar,
    DWORD dwVersionDefault,
    BOOL bConvert = TRUE);

Parametry

ar
CArchive Objekt pro serializaci do nebo z.

dwVersionDefault
Aktuální číslo verze ovládacího prvku.

bConvert
Označuje, zda se mají trvalá data při uložení převést na nejnovější formát nebo je udržovat ve stejném formátu, který měl při načtení.

Návratová hodnota

Číslo verze ovládacího prvku. Pokud se zadaný archiv načítá, SerializeVersion vrátí verzi načtenou z daného archivu. V opačném případě vrátí aktuálně načtenou verzi.

Poznámky

Výkon binární trvalosti ovládacího prvku můžete zlepšit pomocí , SerializeVersionSerializeExtenta SerializeStockProps přepsání COleControl::Serialize. Příklad najdete v kódu serializeExtent. Další informace o optimalizaci inicializace naleznete v tématu Ovládací prvky ActiveX: Optimalizace.

COleControl::SetAppearance

Nastaví hodnotu vlastnosti Vzhled akcie vašeho ovládacího prvku.

void SetAppearance (short sAppearance);

Parametry

sAppearance
Hodnota short (VT_I2), která se má použít pro vzhled vašeho ovládacího prvku. Hodnota nula nastaví vzhled ovládacího prvku na plochou a hodnota 1 nastaví vzhled ovládacího prvku na 3D.

Poznámky

Další informace o vlastnostech akcií naleznete v tématu Ovládací prvky ActiveX: Vlastnosti.

COleControl::SetBackColor

Nastaví hodnotu vlastnosti BackColor stock vašeho ovládacího prvku.

void SetBackColor(OLE_COLOR dwBackColor);

Parametry

dwBackColor
Hodnota OLE_COLOR, která se má použít pro kreslení pozadí ovládacího prvku.

Poznámky

Další informace o použití této vlastnosti a dalších souvisejících vlastností naleznete v článku Ovládací prvky ActiveX: Vlastnosti.

COleControl::SetBorderStyle

Nastaví hodnotu vlastnosti BorderStyle vašeho ovládacího prvku.

void SetBorderStyle(short sBorderStyle);

Parametry

sBorderStyle
Nový styl ohraničení ovládacího prvku; 0 označuje bez ohraničení a 1 označuje normální ohraničení.

Poznámky

Okno ovládacího prvku se pak znovu vytvoří a OnBorderStyleChanged zavolá.

COleControl::SetCapture

Způsobí, že okno kontejneru ovládacího prvku převezme za něj zachycení myši.

CWnd* SetCapture();

Návratová hodnota

Ukazatel na CWnd objekt okna, který dříve přijal vstup myši.

Poznámky

Pokud je ovládací prvek aktivován a bez oken, tato funkce způsobí, že okno kontejneru ovládacího prvku převezme za něj za něj. V opačném případě tato funkce způsobí, že samotný ovládací prvek převezme zachycení myši (stejné jako CWnd::SetCapture).

COleControl::SetControlSize

Nastaví velikost ovládacího okna OLE a upozorní kontejner, že se mění lokalita ovládacího prvku.

BOOL SetControlSize(int cx, int cy);

Parametry

cx
Určuje novou šířku ovládacího prvku v pixelech.

Cy
Určuje novou výšku ovládacího prvku v pixelech.

Návratová hodnota

Nenulové, pokud bylo volání úspěšné; jinak 0.

Poznámky

Tato funkce by neměla být použita v konstruktoru ovládacího prvku.

Všimněte si, že všechny souřadnice ovládacích oken jsou relativní vzhledem k levému hornímu rohu ovládacího prvku.

COleControl::SetEnabled

Nastaví hodnotu vlastnosti Enabled akcie vašeho ovládacího prvku.

void SetEnabled(BOOL bEnabled);

Parametry

bEnabled
TRUE, pokud má být ovládací prvek povolen; jinak NEPRAVDA.

Poznámky

Po nastavení této vlastnosti je OnEnabledChange volána.

COleControl::SetFocus

Způsobí, že okno kontejneru ovládacího prvku převezme vstupní fokus na jménem ovládacího prvku.

CWnd* SetFocus();

Návratová hodnota

Ukazatel na CWnd objekt okna, který dříve měl vstupní fokus, nebo NULL, pokud takové okno neexistuje.

Poznámky

Pokud je ovládací prvek aktivovaný a bez oken, tato funkce způsobí, že okno kontejneru ovládacího prvku převezme fokus vstupu jménem ovládacího prvku. Fokus vstupu směruje vstup klávesnice do okna kontejneru a kontejner odešle všechny následné zprávy klávesnice do objektu OLE, který volá SetFocus. Jakékoli okno, které dříve mělo vstupní fokus, ho ztratí.

Pokud ovládací prvek není bez oken, tato funkce způsobí, že ovládací prvek sám převezme vstupní fokus (stejný jako CWnd::SetFocus).

COleControl::SetFont

Nastaví vlastnost font stock vašeho ovládacího prvku.

void SetFont(LPFONTDISP pFontDisp);

Parametry

pFontDisp
Ukazatel na rozhraní pro odesílání písem.

COleControl::SetForeColor

Nastaví stock ForeColor vlastnost hodnotu vašeho ovládacího prvku.

void SetForeColor(OLE_COLOR dwForeColor);

Parametry

dwForeColor
Hodnota OLE_COLOR, která se má použít pro kresbu ovládacího prvku na popředí.

Poznámky

Další informace o použití této vlastnosti a dalších souvisejících vlastností naleznete v článku Ovládací prvky ActiveX: Vlastnosti.

COleControl::SetInitialDataFormats

Volá se rozhraním pro inicializaci seznamu formátů dat podporovaných ovládacím prvku.

virtual void SetInitialDataFormats();

Poznámky

Výchozí implementace určuje dva formáty: CF_METAFILEPICT a trvalou sadu vlastností.

COleControl::SetInitialSize

Nastaví velikost ovládacího prvku OLE při prvním zobrazení v kontejneru.

void SetInitialSize(
    int cx,
    int cy);

Parametry

cx
Počáteční šířka ovládacího prvku OLE v pixelech.

Cy
Počáteční výška ovládacího prvku OLE v pixelech.

Poznámky

Voláním této funkce v konstruktoru nastavíte počáteční velikost ovládacího prvku. Počáteční velikost se měří v jednotkách zařízení nebo pixelech. Toto volání se doporučuje provést v konstruktoru vašeho ovládacího prvku.

COleControl::SetModifiedFlag

Změní změněný stav ovládacího prvku.

void SetModifiedFlag(BOOL bModified = TRUE);

Parametry

bModified
Nová hodnota upraveného příznaku ovládacího prvku. PRAVDA označuje, že stav ovládacího prvku byl změněn; NEPRAVDA označuje, že stav ovládacího prvku byl právě uložen.

Poznámky

Tuto funkci zavolejte vždy, když dojde ke změně, která by ovlivnila trvalý stav ovládacího prvku. Pokud se například hodnota trvalé vlastnosti změní, zavolejte tuto funkci s hodnotou bModified TRUE.

COleControl::SetNotPermitted

Označuje, že žádost o úpravu selhala.

void SetNotPermitted();

Poznámky

Volání této funkce v případě BoundPropertyRequestEdit selhání Tato funkce vyvolá výjimku typu COleDispScodeException , která indikuje, že operace sady nebyla povolena.

COleControl::SetNotSupported

Zabrání úpravám hodnoty vlastnosti ovládacího prvku uživatelem.

void SetNotSupported();

Poznámky

Volání této funkce místo Funkce Set libovolné vlastnosti, kde úpravy hodnoty vlastnosti uživatelem ovládacího prvku není podporována. Jedním z příkladů je vlastnost, která je jen pro čtení.

COleControl::SetRectInContainer

Nastaví souřadnice obdélníku ovládacího prvku vzhledem ke kontejneru vyjádřenému v jednotkách zařízení.

BOOL SetRectInContainer(LPCRECT lpRect);

Parametry

lpRect
Ukazatel na obdélník obsahující nové souřadnice ovládacího prvku vzhledem ke kontejneru.

Návratová hodnota

Nenulové, pokud bylo volání úspěšné; jinak 0.

Poznámky

Pokud je ovládací prvek otevřený, změní se jeho velikost; jinak se volá funkce kontejneru OnPosRectChanged .

COleControl::SetText

Nastaví hodnotu vlastnosti Titulek nebo Text ovládacího prvku.

void SetText(LPCTSTR pszText);

Parametry

pszText
Ukazatel na řetězec znaků.

Poznámky

Všimněte si, že vlastnosti titulků akcií a textu jsou namapované na stejnou hodnotu. To znamená, že všechny změny provedené v obou vlastnostech automaticky změní obě vlastnosti. Obecně platí, že ovládací prvek by měl podporovat vlastnost Titulek akcií nebo Text, ale ne obojí.

COleControl::ThrowError

Signalizuje výskyt chyby ve vašem ovládacím prvku.

void ThrowError(
    SCODE sc,
    UINT nDescriptionID,
    UINT nHelpID = -1);

void ThrowError(
    SCODE sc,
    LPCTSTR pszDescription = NULL,
    UINT nHelpID = 0);

Parametry

Sc
Hodnota stavového kódu, která se má hlásit. Úplný seznam možných kódů najdete v článku Ovládací prvky ActiveX: Pokročilá témata.

nDescriptionID
ID prostředku řetězce výjimky, která se má hlásit.

nHelpID
ID nápovědy tématu, na které se má nahlásit.

pszDescription
Řetězec obsahující vysvětlení výjimky, která se má hlásit.

Poznámky

Tato funkce by měla být volána pouze z funkce Get nebo Set pro vlastnost OLE nebo implementace metody automatizace OLE. Pokud potřebujete signalizovat chyby, ke kterým dochází v jiných časech, měli byste aktivovat akci Chyba skladem.

COleControl::TransformCoords

Transformuje hodnoty souřadnic mezi jednotkami HIMETRIC a nativními jednotkami kontejneru.

void TransformCoords(
    POINTL* lpptlHimetric,
    POINTF* lpptfContainer,
    DWORD flags);

Parametry

lpptlHimetric
Ukazatel na POINTL strukturu obsahující souřadnice v jednotkách HIMETRIC

lpptfContainer
Ukazatel na POINTF strukturu obsahující souřadnice ve velikosti jednotky kontejneru

vlajky
Kombinace následujících hodnot:

  • XFORMCOORDS_POSITION pozici v kontejneru.

  • XFORMCOORDS_SIZE velikost v kontejneru.

  • XFORMCOORDS_HIMETRICTOCONTAINER transformovat jednotky HIMETRIC na jednotky kontejneru.

  • XFORMCOORDS_CONTAINERTOHIMETRIC Transformovat jednotky kontejneru na jednotky HIMETRIC.

Poznámky

První dva příznaky, XFORMCOORDS_POSITION a XFORMCOORDS_SIZE, označují, zda mají být souřadnice považovány za pozici nebo velikost. Zbývající dva příznaky označují směr transformace.

COleControl::TranslateColor

Převede hodnotu barvy z datového typu OLE_COLOR na datový typ COLORREF .

COLORREF TranslateColor(
    OLE_COLOR clrColor,
    HPALETTE hpal = NULL);

Parametry

clrColor
Datový typ OLE_COLOR. Další informace naleznete v systému Windows OleTranslateColor funkce.

hpal
Popisovač na volitelnou paletu; může mít hodnotu NULL.

Návratová hodnota

32bitová hodnota barvy RGB (červená, zelená, modrá), která definuje plnou barvu nejblíže hodnotě clrColor , kterou může zařízení znázorňovat.

Poznámky

Tato funkce je užitečná k překladu vlastnosti ForeColor a BackColor na typy COLORREF používané členské funkce CDC .

COleControl::WillAmbientsBeValidDuringLoad

Určuje, zda má ovládací prvek používat hodnoty okolních vlastností jako výchozí hodnoty, když je následně načten z jeho trvalého stavu.

BOOL WillAmbientsBeValidDuringLoad();

Návratová hodnota

Nenulová indikuje, že okolní vlastnosti budou platné; v opačném případě nebudou vlastnosti okolí platné.

Poznámky

V některých kontejnerech nemusí mít váš ovládací prvek přístup k jeho okolním vlastnostem během počátečního volání přepsání COleControl::DoPropExchange. To je případ, pokud kontejner volá IPersistStreamInit::Load nebo IPersistStorage::Load před voláním IOleObject::SetClientSite (to znamená, že pokud nerespravuje OLEMISC_SETCLIENTSITEFIRST bit stavu).

COleControl::WindowProc

Poskytuje proceduru systému Windows pro COleControl objekt.

virtual LRESULT WindowProc(
    UINT message,
    WPARAM wParam,
    LPARAM lParam);

Parametry

message
Určuje zprávu systému Windows, která se má zpracovat.

wParam
Poskytuje další informace použité při zpracování zprávy. Hodnota parametru závisí na zprávě.

lParam
Poskytuje další informace použité při zpracování zprávy. Hodnota parametru závisí na zprávě.

Návratová hodnota

Vrácená hodnota zprávy.

Poznámky

Voláním této funkce odešlete konkrétní zprávy prostřednictvím mapy zpráv ovládacího prvku.

Viz také

MFC – ukázka CIRC3
MFC Sample TESTHELP
COlePropertyPage – třída
CWnd – třída
Graf hierarchie
CFontHolder – třída
CPictureHolder – třída