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
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ý CFile
objekt, 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í CreateControl
se 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