Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Megjegyzés:
Az aktív sablontár (ATL) továbbra is támogatott. A továbbiakban azonban nem adunk hozzá funkciókat, és nem frissítjük a dokumentációt.
Ez az osztály az összetett vezérlők implementálásához szükséges módszereket tartalmazza.
Fontos
Ez az osztály és tagjai nem használhatók a Windows futtatókörnyezetben futó alkalmazásokban.
Szemantika
template <class T>
class CComCompositeControl : public CComControl<T,CAxDialogImpl<T>>
Paraméterek
T
A CComObjectRoot vagy a CComObjectRootEx osztályból, valamint az összetett vezérlőhöz támogatni kívánt egyéb felületekről származik.
Tagok
Nyilvános konstruktorok
| Név | Description |
|---|---|
| CComCompositeControl::CComCompositeControl | A konstruktor. |
| CComCompositeControl::~CComCompositeControl | A destruktor. |
Nyilvános módszerek
| Név | Description |
|---|---|
| CComCompositeControl::AdviseSinkMap | Ezt a metódust meghívva tanácsot adhat az összetett vezérlő által üzemeltetett összes vezérlőnek, vagy megszüntetheti annak felügyeletét. |
| CComCompositeControl::CalcExtent | Hívja meg ezt a metódust az összetett vezérlő üzemeltetéséhez használt párbeszédpanel-erőforrás HIMETRIC-egységeiben lévő méret kiszámításához. |
| CComCompositeControl::Létrehozás | Ez a metódus az összetett vezérlő vezérlőablakának létrehozásához hívható meg. |
| CComCompositeControl::CreateControlWindow | Hívja meg ezt a metódust a vezérlőablak létrehozásához, és adjon tanácsot az üzemeltetett vezérlőknek. |
| CComCompositeControl::SetBackgroundColorFromAmbient | Ezt a metódust úgy hívhatja meg, hogy a tároló háttérszínével állítsa be az összetett vezérlő háttérszínét. |
Nyilvános adatok tagjai
| Név | Description |
|---|---|
| CComCompositeControl::m_hbrBackground | A háttérkefe. |
| CComCompositeControl::m_hWndFocus | A fókuszban lévő ablak fogópontja. |
Megjegyzések
Az osztályból CComCompositeControl származtatott osztályok öröklik az ActiveX összetett vezérlőelemek funkcióit. A származtatott CComCompositeControl ActiveX-vezérlőket egy szabványos párbeszédpanel üzemelteti. Ezeket a vezérlőtípusokat összetett vezérlőknek nevezzük, mivel más vezérlőket (natív Windows-vezérlőket és ActiveX-vezérlőket) is képesek üzemeltetni.
CComCompositeControl azonosítja az összetett vezérlő létrehozásához használandó párbeszédpanel-erőforrást, ha számbavételes adattagot keres a gyermekosztályban. A gyermekosztály tagazonosítója a vezérlő ablakaként használni kívánt párbeszédpanel-erőforrás erőforrás-azonosítójára van állítva. Az alábbiakban egy példa látható arra az adattagra, amelyből CComCompositeControl az osztálynak tartalmaznia kell a vezérlő ablakához használandó párbeszédpanel-erőforrás azonosításához:
enum { IDD = IDD_MYCOMPOSITE };
Megjegyzés:
Az összetett vezérlők mindig ablakos vezérlők, bár ablak nélküli vezérlőket tartalmazhatnak.
A -derived osztály által CComCompositeControlimplementált vezérlőelemek alapértelmezett lapozási viselkedést használnak. Ha a vezérlő a fókuszt úgy kapja meg, hogy egy adott alkalmazásba lapozza a lapot, a TAB billentyű egymást követő lenyomásával a fókusz az összetett vezérlő összes tartalmazott vezérlőjén végig lesz lépegetve, majd az összetett vezérlőn kívülre, majd a tároló tabulátorsorrendjének következő elemére. Az üzemeltetett vezérlők lapsorrendét a párbeszédpanel-erőforrás határozza meg, és meghatározza a lapozási sorrendet.
Megjegyzés:
Ahhoz, hogy a gyorsítók megfelelően működjenek a CComCompositeControlvezérlővel, be kell tölteni egy gyorsítótáblát a vezérlő létrehozásakor, át kell adni a leírót és a gyorsítók számát az IOleControlImpl::GetControlInfo fájlba, és végül megsemmisíteni a táblát, amikor a vezérlő ki van adva.
Example
// Example for overriding IOleControlImpl::GetControlInfo()
// This example uses the accelerator table from the project resources
// with the identifier IDR_ACCELTABLE
// Define GetControlInfo() in the header of your composite
// control class as follows:
STDMETHOD(GetControlInfo)(CONTROLINFO* pCI)
{
// Load the accelerator table from the resource
pCI->hAccel = LoadAccelerators(_AtlBaseModule.GetResourceInstance(),
MAKEINTRESOURCE(IDR_ACCELTABLE));
if (pCI->hAccel == NULL)
return E_FAIL;
// Get the number of accelerators in the table
pCI->cAccel = (USHORT)CopyAcceleratorTable(pCI->hAccel, NULL, 0);
// The following is optional if you want your control
// to process the return and/or escape keys
// pCI.dwFlags = CTRLINFO_EATS_RETURN | CTRLINFO_EATS_ESCAPE;
pCI->dwFlags = 0;
return S_OK;
}
Öröklési hierarchia
WinBase
CComCompositeControl
Requirements
Fejléc: atlctl.h
CComCompositeControl::AdviseSinkMap
Ezt a metódust meghívva tanácsot adhat az összetett vezérlő által üzemeltetett összes vezérlőnek, vagy megszüntetheti annak felügyeletét.
HRESULT AdviseSinkMap(bool bAdvise);
Paraméterek
bAdvise
Igaz, ha minden vezérlőt javasolni kell; egyéb esetben hamis.
Visszaadott érték
| Érték | Description |
|---|---|
S_OK |
Az esemény fogadótérképének összes vezérlője sikeresen csatlakozott vagy megszakadt az eseményforrástól. |
E_FAIL |
Az esemény fogadótérképének nem minden vezérlője csatlakoztatható vagy leválasztható sikeresen az eseményforrásról. |
E_POINTER |
Ez a hiba általában a vezérlő eseményelvezető térképének bejegyzésével vagy egy alaposztályban IDispEventImplIDispEventSimpleImpl használt sablonargumentummal kapcsolatos problémát jelez. |
CONNECT_E_ADVISELIMIT |
A csatlakozási pont már elérte a kapcsolatok korlátját, és nem tud többé elfogadni. |
CONNECT_E_CANNOTCONNECT |
A fogadó nem támogatja az ehhez a csatlakozási ponthoz szükséges felületet. |
CONNECT_E_NOCONNECTION |
A cookie-érték nem érvényes kapcsolatot jelöl. Ez a hiba általában a vezérlő eseményelvezető térképének bejegyzésével vagy egy alaposztályban IDispEventImplIDispEventSimpleImpl használt sablonargumentummal kapcsolatos problémát jelez. |
Megjegyzések
Ennek a metódusnak az alap implementációja az eseménygyűjtő térkép bejegyzéseiben keres. Ezután tanácsot ad vagy megszünteti a kapcsolati pontokat az esemény fogadótérkép fogadójának bejegyzései által leírt COM-objektumokhoz. Ez a tagmetódus arra a tényre is támaszkodik, hogy a származtatott osztály a fogadótérkép minden olyan vezérlőjének IDispEventImpl egy példányát örökli, amelyet javasolni vagy nem kell használni.
CComCompositeControl::CalcExtent
Hívja meg ezt a metódust az összetett vezérlő üzemeltetéséhez használt párbeszédpanel-erőforrás HIMETRIC-egységeiben lévő méret kiszámításához.
BOOL CalcExtent(SIZE& size);
Paraméterek
méret
Hivatkozás az SIZE ezzel a módszerrel kitöltendő struktúrára.
Visszaadott érték
IGAZ, ha a vezérlőt egy párbeszédpanel üzemelteti; egyéb esetben HAMIS.
Megjegyzések
A méret a méretparaméterben lesz visszaadva.
CComCompositeControl::Létrehozás
Ez a metódus az összetett vezérlő vezérlőablakának létrehozásához hívható meg.
HWND Create(
HWND hWndParent,
RECT& /* rcPos */,
LPARAM dwInitParam = NULL);
Paraméterek
hWndParent
A vezérlő szülőablakának fogópontja.
rcPos
Fenntartott.
dwInitParam
A vezérlőknek a vezérlő létrehozása során továbbítandó adatok. A dwInitParam néven átadott adatok a WM_INITDIALOG üzenet LPARAM paramétereként jelennek meg, amelyet a rendszer a létrehozásukkor elküld az összetett vezérlőnek.
Visszaadott érték
Az újonnan létrehozott összetett vezérlő párbeszédpanel leírója.
Megjegyzések
Ezt a metódust általában a vezérlő helyszíni aktiválása során hívjuk meg.
CComCompositeControl::CComCompositeControl
A konstruktor.
CComCompositeControl();
Megjegyzések
Inicializálja a CComCompositeControl::m_hbrBackground és a CComCompositeControl::m_hWndFocus adattagokat NULL értékre.
CComCompositeControl::~CComCompositeControl
A destruktor.
~CComCompositeControl();
Megjegyzések
Törli a háttérobjektumot, ha létezik.
CComCompositeControl::CreateControlWindow
Ezt a metódust meghívva hozza létre a vezérlőablakot, és tanácsot ad az üzemeltetett vezérlőknek.
virtual HWND CreateControlWindow(
HWND hWndParent,
RECT& rcPos);
Paraméterek
hWndParent
A vezérlő szülőablakának fogópontja.
rcPos
Az összetett vezérlő pozíció téglalapja az ügyfélkoordinátákban a hWndParenthez képest.
Visszaadott érték
Egy fogópontot ad vissza az újonnan létrehozott összetett vezérlő párbeszédpanelre.
Megjegyzések
Ez a metódus meghívja a CComCompositeControl::Create és A CComCompositeControl::AdviseSinkMap parancsot.
CComCompositeControl::m_hbrBackground
A háttérkefe.
HBRUSH m_hbrBackground;
CComCompositeControl::m_hWndFocus
A fókuszban lévő ablak fogópontja.
HWND m_hWndFocus;
CComCompositeControl::SetBackgroundColorFromAmbient
Ezt a metódust úgy hívhatja meg, hogy a tároló háttérszínével állítsa be az összetett vezérlő háttérszínét.
HRESULT SetBackgroundColorFromAmbient();
Visszaadott érték
A sikeres S_OK, vagy a sikertelen HRESULT hibát adja vissza.
Lásd még
CComControl-osztály
Az összetett vezérlés alapjai
osztály áttekintése