Megosztás a következőn keresztül:


CComCompositeControl osztály

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

CComControlBase

CComControl

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