Sdílet prostřednictvím


COleControlContainer – třída

Funguje jako kontejner ovládacího prvku pro ovládací prvky ActiveX.

Syntaxe

class COleControlContainer : public CCmdTarget

Členové

Veřejné konstruktory

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

Veřejné metody

Název Popis
COleControlContainer::AttachControlSite Vytvoří řídicí web hostovaný kontejnerem.
COleControlContainer::BroadcastAmbientPropertyChange Informuje všechny hostované ovládací prvky, že se změnila okolní vlastnost.
COleControlContainer::CheckDlgButton Upraví zadaný ovládací prvek tlačítka.
COleControlContainer::CheckRadioButton Vybere zadané přepínač skupiny.
COleControlContainer::CreateControl Vytvoří hostovaný ovládací prvek ActiveX.
COleControlContainer::CreateOleFont Vytvoří písmo OLE.
COleControlContainer::FindItem Vrátí vlastní web zadaného ovládacího prvku.
COleControlContainer::FreezeAllEvents Určuje, jestli řídicí web přijímá události.
COleControlContainer::GetAmbientProp Načte zadanou vlastnost okolí.
COleControlContainer::GetDlgItem Načte zadaný ovládací prvek dialogového okna.
COleControlContainer::GetDlgItemInt Načte hodnotu zadaného ovládacího prvku dialogového okna.
COleControlContainer::GetDlgItemText Načte titulek zadaného ovládacího prvku dialogového okna.
COleControlContainer::HandleSetFocus Určuje, jestli kontejner zpracovává WM_SETFOCUS zprávy.
COleControlContainer::HandleWindowlessMessage Zpracovává zprávy odeslané do ovládacího prvku bez oken.
COleControlContainer::IsDlgButtonChecked Určuje stav zadaného tlačítka.
COleControlContainer::OnPaint Volá se k opětovnému nakreslení části kontejneru.
COleControlContainer::OnUIActivate Volá se, když má být ovládací prvek aktivovaný na místě.
COleControlContainer::OnUIDeactivate Volá se, když se má ovládací prvek deaktivovat.
COleControlContainer::ScrollChildren Volá se rozhraním, když se zprávy posouvání přijímají z podřízeného okna.
COleControlContainer::SendDlgItemMessage Odešle zprávu zadanému ovládacímu prvku.
COleControlContainer::SetDlgItemInt Nastaví hodnotu zadaného ovládacího prvku.
COleControlContainer::SetDlgItemText Nastaví text zadaného ovládacího prvku.

Veřejné datové členy

Název Popis
COleControlContainer::m_crBack Barva pozadí kontejneru.
COleControlContainer::m_crFore Barva popředí kontejneru.
COleControlContainer::m_listSitesOrWnds Seznam podporovaných řídicích webů
COleControlContainer::m_nWindowlessControls Počet hostovaných ovládacích prvků bez oken.
COleControlContainer::m_pOleFont Ukazatel na písmo OLE webu vlastního ovládacího prvku.
COleControlContainer::m_pSiteCapture Ukazatel na web ovládacího prvku zachycení.
COleControlContainer::m_pSiteFocus Ukazatel na ovládací prvek, který má aktuálně fokus vstupu.
COleControlContainer::m_pSiteUIActive Ukazatel na ovládací prvek, který je aktuálně aktivovaný.
COleControlContainer::m_pWnd Ukazatel na okno implementující kontejner ovládacího prvku
COleControlContainer::m_siteMap Mapa webu.

Poznámky

To se provádí poskytnutím podpory pro jednu nebo více lokalit ovládacích prvků ActiveX (implementovaných ).COleControlSite COleControlContainer plně implementuje rozhraní IOleInPlaceFrame a IOleContainer , což umožňuje obsaženým ovládacím prvkům ActiveX plnit své kvalifikace jako místní položky.

Tato třída se běžně používá ve spojení s kontejnerem COccManager vlastních ovládacích prvků ActiveX a COleControlSite implementuje vlastní kontejner ovládacích prvků ActiveX s vlastními weby pro jeden nebo více ovládacích prvků ActiveX.

Hierarchie dědičnosti

Objekt CObject

CCmdTarget

COleControlContainer

Požadavky

Hlavička: afxocc.h

COleControlContainer::AttachControlSite

Volá se rozhraním pro vytvoření a připojení řídicí lokality.

virtual void AttachControlSite(
    CWnd* pWnd,
    UINT nIDC = 0);

void AttachControlSite(
    CWnd* pWnd,
    UINT nIDC = 0);

Parametry

pWnd
Ukazatel na CWnd objekt.

nIDC
ID ovládacího prvku, který se má připojit.

Poznámky

Tuto funkci přepište, pokud chcete tento proces přizpůsobit.

Poznámka:

První formu této funkce použijte, pokud staticky propojíte s knihovnou MFC. Pokud dynamicky propojujete knihovnu MFC, použijte druhý formulář.

COleControlContainer::BroadcastAmbientPropertyChange

Informuje všechny hostované ovládací prvky, že se změnila okolní vlastnost.

virtual void BroadcastAmbientPropertyChange(DISPID dispid);

Parametry

dispid
ID odeslání okolní vlastnosti, která se mění.

Poznámky

Tato funkce je volána architekturou, pokud okolí vlastnost změnil hodnotu. Přepište tuto funkci tak, aby toto chování přizpůsobila.

COleControlContainer::CheckDlgButton

Upraví aktuální stav tlačítka.

virtual void CheckDlgButton(
    int nIDButton,
    UINT nCheck);

Parametry

nIDButton
ID tlačítka, které se má upravit.

nCheck
Určuje stav tlačítka. Může to být jedna z následujících možností:

  • BST_CHECKED Nastaví stav tlačítka na zaškrtnuté.

  • BST_INDETERMINATE Nastaví stav tlačítka na šedě, což označuje nedeterminovaný stav. Tuto hodnotu použijte pouze v případě, že má tlačítko styl BS_3STATE nebo BS_AUTO3STATE.

  • BST_UNCHECKED Nastaví stav tlačítka tak, aby se vymazal.

COleControlContainer::CheckRadioButton

Vybere zadaný přepínač ve skupině a vymaže zbývající tlačítka ve skupině.

virtual void CheckRadioButton(
    int nIDFirstButton,
    int nIDLastButton,
    int nIDCheckButton);

Parametry

nIDFirstButton
Určuje identifikátor prvního přepínače ve skupině.

nIDLastButton
Určuje identifikátor posledního přepínače ve skupině.

nIDCheckButton
Určuje identifikátor přepínače, který se má zkontrolovat.

COleControlContainer::COleControlContainer

COleControlContainer Vytvoří objekt.

explicit COleControlContainer(CWnd* pWnd);

Parametry

pWnd
Ukazatel na nadřazené okno kontejneru ovládacího prvku.

Poznámky

Po úspěšném vytvoření objektu přidejte vlastní web ovládacího prvku s voláním AttachControlSite.

COleControlContainer::CreateControl

Vytvoří ovládací prvek ActiveX hostovaný zadaným COleControlSite objektem.

BOOL CreateControl(
    CWnd* pWndCtrl,
    REFCLSID clsid,
    LPCTSTR lpszWindowName,
    DWORD dwStyle,
    const RECT& rect,
    UINT nID,
    CFile* pPersist =NULL,
    BOOL bStorage =FALSE,
    BSTR bstrLicKey =NULL,
    COleControlSite** ppNewSite =NULL);

BOOL CreateControl(
    CWnd* pWndCtrl,
    REFCLSID clsid,
    LPCTSTR lpszWindowName,
    DWORD dwStyle,
    const POINT* ppt,
    const SIZE* psize,
    UINT nID,
    CFile* pPersist =NULL,
    BOOL bStorage =FALSE,
    BSTR bstrLicKey =NULL,
    COleControlSite** ppNewSite =NULL);

Parametry

pWndCtrl
Ukazatel na objekt okna představující ovládací prvek.

clsid
Jedinečné ID třídy ovládacího prvku.

lpszWindowName
Ukazatel na text, který se má v ovládacím prvku zobrazit. Nastaví hodnotu vlastnosti Caption nebo Text ovládacího prvku (pokud existuje). Pokud hodnota NULL, vlastnost Titulek nebo Text ovládacího prvku se nezmění.

dwStyle
Styly Windows. Dostupné styly jsou uvedeny v části Poznámky .

Rect
Určuje velikost a umístění ovládacího prvku. Může to být CRect objekt nebo RECT struktura.

Nid
Určuje ID podřízeného okna ovládacího prvku.

pPersist
Ukazatel na CFile obsahující trvalý stav ovládacího prvku. Výchozí hodnota je NULL, což znamená, že se ovládací prvek inicializuje bez obnovení stavu z jakéhokoli trvalého úložiště. Pokud není null, měl by to být ukazatel na -odvozený CFileobjekt, který obsahuje trvalá data ovládacího prvku ve formě datového proudu nebo úložiště. Tato data mohla být uložena v předchozí aktivaci klienta. Může CFile obsahovat jiná data, ale musí mít ukazatel pro čtení i zápis nastavený na první bajt trvalých dat v době volání CreateControl.

bStorage
Určuje, zda mají být data v nástroji pPersist interpretována jako IStorage nebo IStream data. Pokud jsou data v nástroji pPersist úložištěm, bStorage by měla být TRUE. Pokud jsou data v nástroji pPersist datový proud, měl by být bStorage FALSE. Výchozí hodnota je FALSE.

bstrLicKey
Nepovinná data licenčního klíče. Tato data jsou potřebná pouze pro vytváření ovládacích prvků, které vyžadují licenční klíč za běhu. Pokud ovládací prvek podporuje licencování, musíte zadat licenční klíč pro úspěšné vytvoření ovládacího prvku. Výchozí hodnota je NULL.

ppNewSite
Ukazatel na existující web ovládacího prvku, který bude hostitelem vytvářeného ovládacího prvku. Výchozí hodnota je NULL, která označuje, že nový řídicí web bude automaticky vytvořen a připojen k novému ovládacímu prvku.

Ppt
Ukazatel na POINT strukturu, která obsahuje levý horní roh ovládacího prvku. Velikost ovládacího prvku je určena hodnotou psize. Hodnoty ppt a psize jsou volitelnou metodou určení velikosti a umístění ovládacího prvku.

psize
Ukazatel na SIZE strukturu, která obsahuje velikost ovládacího prvku. Levý horní roh je určen hodnotou ppt. Hodnoty ppt a psize jsou volitelnou metodou určení velikosti a umístění ovládacího prvku.

Návratová hodnota

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

Poznámky

Podporují CreateControlse pouze podmnožina příznaků Windows dwStyle:

  • WS_VISIBLE Vytvoří okno, které je zpočátku viditelné. Vyžaduje se, pokud chcete, aby byl ovládací prvek viditelný okamžitě, například běžná okna.

  • WS_DISABLED Vytvoří okno, které je původně zakázáno. Zakázané okno nemůže přijímat vstup od uživatele. Lze nastavit, pokud má ovládací prvek vlastnost Enabled.

  • WS_BORDER Vytvoří okno s ohraničením tenké čáry. Lze nastavit, pokud ovládací prvek má BorderStyle vlastnost.

  • WS_GROUP Určuje první ovládací prvek skupiny ovládacích prvků. Uživatel může změnit fokus klávesnice z jednoho ovládacího prvku ve skupině na další pomocí směrových kláves. Všechny ovládací prvky definované stylem WS_GROUP po prvním ovládacím prvku patří do stejné skupiny. Další ovládací prvek se stylem WS_GROUP ukončí skupinu a spustí další skupinu.

  • WS_TABSTOP Určuje ovládací prvek, který může přijímat fokus klávesnice, když uživatel stiskne klávesu TAB. Stisknutím klávesy TAB změníte fokus klávesnice na další ovládací prvek WS_TABSTOP stylu.

Druhé přetížení použijte k vytvoření výchozích ovládacích prvků velikosti.

COleControlContainer::CreateOleFont

Vytvoří písmo OLE.

void CreateOleFont(CFont* pFont);

Parametry

pFont
Ukazatel na písmo, které má ovládací kontejner používat.

COleControlContainer::FindItem

Vyhledá vlastní web, který je hostitelem zadané položky.

virtual COleControlSite* FindItem(UINT nID) const;

Parametry

Nid
Identifikátor položky, která se má najít.

Návratová hodnota

Ukazatel na vlastní web zadané položky.

COleControlContainer::FreezeAllEvents

Určuje, jestli kontejner bude ignorovat události z připojených řídicích webů nebo je přijme.

void FreezeAllEvents(BOOL bFreeze);

Parametry

bFreeze
Nenulové, pokud budou události zpracovány; jinak 0.

Poznámky

Poznámka:

Ovládací prvek není nutný k zastavení aktivace událostí, pokud je požadován kontejnerem ovládacího prvku. Může pokračovat ve aktivaci, ale kontejner ovládacího prvku bude ignorovat všechny následné události.

COleControlContainer::GetAmbientProp

Načte hodnotu zadané okolní vlastnosti.

virtual BOOL GetAmbientProp(
    COleControlSite* pSite,
    DISPID dispid,
    VARIANT* pvarResult);

Parametry

Web pSite
Ukazatel na řídicí web, ze kterého se načte okolní vlastnost.

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

pVarResult
Ukazatel na hodnotu okolní vlastnosti.

Návratová hodnota

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

COleControlContainer::GetDlgItem

Načte ukazatel na zadaný ovládací prvek nebo podřízené okno v dialogovém okně nebo jiném okně.

virtual CWnd* GetDlgItem(int nID) const;

virtual void GetDlgItem(
    int nID,
    HWND* phWnd) const;

Parametry

Nid
Identifikátor položky dialogového okna, která se má načíst.

PhWnd
Ukazatel na popisovač objektu okna zadané položky dialogového okna.

Návratová hodnota

Ukazatel na okno položky dialogového okna

COleControlContainer::GetDlgItemInt

Načte hodnotu přeloženého textu daného ovládacího prvku.

virtual UINT GetDlgItemInt(
    int nID,
    BOOL* lpTrans,
    BOOL bSigned) const;

Parametry

Nid
Identifikátor ovládacího prvku.

lpTrans
Ukazatel na logickou proměnnou, která přijímá hodnotu úspěchu nebo selhání funkce (PRAVDA označuje úspěch, NEPRAVDA označuje selhání).

bSigned
Určuje, zda má funkce zkoumat text znaménka minus na začátku a vrátit znaménko Pokud je parametr bSigned TRUE, určuje, že hodnota, která má být načtena, je znaménkem celočíselná hodnota, přetypujte návratovou int hodnotu na typ. Pokud chcete získat rozšířené informace o chybě, zavolejte GetLastError.

Návratová hodnota

V případě úspěchu je proměnná odkazovaná na lpTrans nastavena na hodnotu TRUE a návratová hodnota je přeložená hodnota textu ovládacího prvku.

Pokud funkce selže, proměnná odkazovaná na lpTrans je nastavena na HODNOTU NEPRAVDA a návratová hodnota je nula. Všimněte si, že vzhledem k tomu, že nula je možná přeložená hodnota, návratová hodnota nuly sama o sobě neznamená selhání.

Pokud je hodnota lpTrans null, funkce nevrátí žádné informace o úspěchu nebo selhání.

Poznámky

Funkce přeloží načtený text tak, že odstraní všechny nadbytečné mezery na začátku textu a pak převede desítkové číslice. Funkce přestane překládat, když dosáhne konce textu nebo narazí na nečíselný znak.

Tato funkce vrátí nulu, pokud je přeložená hodnota větší než INT_MAX (pro podepsaná čísla) nebo UINT_MAX (pro čísla bez znaménka).

COleControlContainer::GetDlgItemText

Načte text daného ovládacího prvku.

virtual int GetDlgItemText(
    int nID,
    LPTSTR lpStr,
    int nMaxCount) const;

Parametry

Nid
Identifikátor ovládacího prvku.

lpStr
Ukazatel na text ovládacího prvku.

nMaxCount
Určuje maximální délku řetězce, který se má zkopírovat do vyrovnávací paměti odkazované na lpStr. Pokud délka řetězce překročí limit, řetězec se zkrátí.

Návratová hodnota

Pokud je funkce úspěšná, návratová hodnota určuje počet znaků zkopírovaných do vyrovnávací paměti, nikoli ukončující znak null.

Pokud funkce selže, návratová hodnota je nula. Pokud chcete získat rozšířené informace o chybě, zavolejte GetLastError.

COleControlContainer::HandleSetFocus

Určuje, jestli kontejner zpracovává WM_SETFOCUS zprávy.

virtual BOOL HandleSetFocus();

Návratová hodnota

Nenulové, pokud kontejner zpracovává WM_SETFOCUS zprávy; jinak nula.

COleControlContainer::HandleWindowlessMessage

Zpracovává zprávy oken pro ovládací prvky bez oken.

virtual BOOL HandleWindowlessMessage(
    UINT message,
    WPARAM wParam,
    LPARAM lParam,
    LRESULT* plResult);

Parametry

message
Identifikátor zprávy okna poskytované systémem Windows.

wParam
Parametr zprávy; poskytuje systém Windows. Určuje další informace specifické pro zprávu. Obsah tohoto parametru závisí na hodnotě parametru zprávy .

lParam
Parametr zprávy; poskytuje systém Windows. Určuje další informace specifické pro zprávu. Obsah tohoto parametru závisí na hodnotě parametru zprávy .

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 nula.

Poznámky

Přepište tuto funkci tak, aby přizpůsobila zpracování řídicích zpráv bez oken.

COleControlContainer::IsDlgButtonChecked

Určuje stav zadaného tlačítka.

virtual UINT IsDlgButtonChecked(int nIDButton) const;

Parametry

nIDButton
Identifikátor ovládacího prvku tlačítka.

Návratová hodnota

Návratová hodnota z tlačítka vytvořeného pomocí stylu BS_AUTOCHECKBOX, BS_AUTORADIOBUTTON, BS_AUTO3STATE, BS_CHECKBOX, BS_RADIOBUTTON nebo BS_3STATE. Může to být jedna z následujících možností:

  • tlačítko BST_CHECKED je zaškrtnuté.

  • BST_INDETERMINATE Tlačítko je šedé, což označuje nedeterminovaný stav (platí jenom v případě, že tlačítko má BS_3STATE nebo styl BS_AUTO3STATE).

  • tlačítko BST_UNCHECKED je vymazáno.

Poznámky

Pokud je tlačítko ovládací prvek se třemi stavy, členová funkce určuje, zda je neaktivní, zaškrtnuté nebo ani jedno.

COleControlContainer::m_crBack

Barva pozadí kontejneru.

COLORREF m_crBack;

COleControlContainer::m_crFore

Barva popředí kontejneru.

COLORREF m_crFore;

COleControlContainer::m_listSitesOrWnds

Seznam řídicích webů hostovaných kontejnerem

CTypedPtrList<CPtrList, COleControlSiteOrWnd*> m_listSitesOrWnds;

COleControlContainer::m_nWindowlessControls

Počet ovládacích prvků bez oken hostovaných kontejnerem ovládacího prvku.

int m_nWindowlessControls;

COleControlContainer::m_pOleFont

Ukazatel na písmo OLE webu vlastního ovládacího prvku.

LPFONTDISP m_pOleFont;

COleControlContainer::m_pSiteCapture

Ukazatel na web ovládacího prvku zachycení.

COleControlSite* m_pSiteCapture;

COleControlContainer::m_pSiteFocus

Ukazatel na řídicí web, který má aktuálně fokus vstupu.

COleControlSite* m_pSiteFocus;

COleControlContainer::m_pSiteUIActive

Ukazatel na řídicí lokalitu, která je aktivovaná na místě.

COleControlSite* m_pSiteUIActive;

COleControlContainer::m_pWnd

Ukazatel na objekt okna přidružený ke kontejneru.

CWnd* m_pWnd;

COleControlContainer::m_siteMap

Mapa webu.

CMapPtrToPtr m_siteMap;

COleControlContainer::OnPaint

Volal rozhraní pro zpracování WM_PAINT požadavků.

virtual BOOL OnPaint(CDC* pDC);

Parametry

pDC
Ukazatel na kontext zařízení používaný kontejnerem.

Návratová hodnota

Nenulové, pokud byla zpráva zpracována; jinak nula.

Poznámky

Přepište tuto funkci tak, aby přizpůsobila proces malování.

COleControlContainer::OnUIActivate

Volá se rozhraním, když řídicí web, který odkazuje na web pSite, se chystá aktivovat na místě.

virtual void OnUIActivate(COleControlSite* pSite);

Parametry

Web pSite
Ukazatel na řídicí web, který se má aktivovat.

Poznámky

Místní aktivace znamená, že hlavní nabídka kontejneru se nahradí místní složenou nabídkou.

COleControlContainer::OnUIDeactivate

Volá se rozhraním, když řídicí web, který odkazuje na web pSite, se chystá deaktivovat.

virtual void OnUIDeactivate(COleControlSite* pSite);

Parametry

Web pSite
Ukazatel na řídicí web, který se má deaktivovat.

Poznámky

Po přijetí tohoto oznámení by měl kontejner přeinstalovat své uživatelské rozhraní a zaměřit se na to.

COleControlContainer::ScrollChildren

Volá se rozhraním, když se zprávy posouvání přijímají z podřízeného okna.

virtual void ScrollChildren(
    int dx,
    int dy);

Parametry

Dx
Množství v pixelech posouvání podél osy x.

dy
Množství v pixelech posouvání podél osy y.

COleControlContainer::SendDlgItemMessage

Odešle zprávu zadanému ovládacímu prvku.

virtual LRESULT SendDlgItemMessage(
    int nID,
    UINT message,
    WPARAM wParam,
    LPARAM lParam);

Parametry

Nid
Určuje identifikátor ovládacího prvku, který obdrží zprávu.

message
Určuje zprávu, která se má odeslat.

wParam
Určuje další informace specifické pro zprávu.

lParam
Určuje další informace specifické pro zprávu.

COleControlContainer::SetDlgItemInt

Nastaví text ovládacího prvku v dialogovém okně na řetězcovou reprezentaci zadané celočíselné hodnoty.

virtual void SetDlgItemInt(
    int nID,
    UINT nValue,
    BOOL bSigned);

Parametry

Nid
Identifikátor ovládacího prvku.

nValue
Celočíselná hodnota, která se má zobrazit.

bSigned
Určuje, zda je parametr nValue podepsán nebo bez znaménka. Pokud je tento parametr PRAVDA, hodnota nValue je podepsána. Pokud je tento parametr PRAVDA a hodnota nValue je menší než nula, před první číslici v řetězci se umístí znaménko minus. Pokud je tento parametr NEPRAVDA, hodnota nValue není podepsána.

COleControlContainer::SetDlgItemText

Nastaví text zadaného ovládacího prvku pomocí textu obsaženého v lpszString.

virtual void SetDlgItemText(
    int nID,
    LPCTSTR lpszString);

Parametry

Nid
Identifikátor ovládacího prvku.

lpszString
Ukazatel na text ovládacího prvku.

Viz také

CCmdTarget – třída
Graf hierarchie
COleControlSite – třída
COccManager – třída