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


CComControl-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 metódusokat biztosít az ATL-vezérlők létrehozásához és kezeléséhez.

Fontos

Ez az osztály és tagjai nem használhatók a Windows futtatókörnyezetben futó alkalmazásokban.

Szemantika

template <class T, class WinBase = CWindowImpl<T>>
class ATL_NO_VTABLE CComControl : public CComControlBase,
    public WinBase;

Paraméterek

T
A vezérlőt megvalósító osztály.

WinBase
Az ablakfüggvényeket implementáló alaposztály. Alapértelmezés szerint a CWindowImpl.

Tagok

Nyilvános konstruktorok

Név Description
CComControl::CComControl Konstruktor.

Nyilvános módszerek

Név Description
CComControl::ControlQueryInterface A kért felületre mutató mutatót kér le.
CComControl::CreateControlWindow Létrehoz egy ablakot a vezérlő számára.
CComControl::FireOnChanged Értesíti a tároló fogadóját, hogy egy vezérlőtulajdonság megváltozott.
CComControl::FireOnRequestEdit Értesíti a tároló fogadóját, hogy egy vezérlőtulajdonság módosulni fog, és hogy az objektum a fogadótól kéri a folytatást.
CComControl::MessageBox Hívja meg ezt a metódust egy üzenetmező létrehozásához, megjelenítéséhez és működtetéséhez.

Megjegyzések

CComControl hasznos vezérlős segédfüggvények és alapvető adattagok az ATL-vezérlőkhöz. Amikor az ATL-vezérlővarázslóval létrehoz egy standard vagy egy DHTML-vezérlőt, a varázsló automatikusan lekéri az osztályt.CComControl CComControl a legtöbb metódusát a CComControlBase-ből származtatja.

A vezérlők létrehozásával kapcsolatos további információkért tekintse meg az ATL-oktatóanyagot. Az ATL-projektvarázslóról további információt az ATL-projekt létrehozása című cikkben talál.

A metódusok CComControl és adattagok bemutatásához tekintse meg a CIRC-mintát .

Öröklési hierarchia

WinBase

CComControlBase

CComControl

Requirements

Fejléc: atlctl.h

CComControl::CComControl

A konstruktor.

CComControl();

Megjegyzések

Meghívja a CComControlBase konstruktort, és átadja a m_hWndCWindowImpl által örökölt adattagot.

CComControl::ControlQueryInterface

A kért felületre mutató mutatót kér le.

virtual HRESULT ControlQueryInterface(const IID& iid, void** ppv);

Paraméterek

iid
[in] A kért felület GUID azonosítója.

Ppv
[kifelé] Az iid által azonosított illesztőmutatóra mutató mutató, vagy null értékű, ha a felület nem található.

Megjegyzések

Csak a COM-térképtáblában lévő felületeket kezeli.

Example

// Retrieve the control's IOleObject interface. Note interface 
// is automatically released when pOleObject goes out of scope

CComPtr<IOleObject> pOleObject;
ControlQueryInterface(IID_IOleObject, (void**)&pOleObject);

CComControl::CreateControlWindow

Alapértelmezés szerint a hívással CWindowImpl::Createlétrehoz egy ablakot a vezérlő számára.

virtual HWND CreateControlWindow(HWND hWndParent, RECT& rcPos);

Paraméterek

hWndParent
[in] A szülő vagy a tulajdonos ablakának kezelése. Érvényes ablakfogópontot kell megadni. A vezérlőablak a szülőablak területére korlátozódik.

rcPos
[in] A létrehozandó ablak kezdeti mérete és pozíciója.

Megjegyzések

Bírálja felül ezt a módszert, ha nem egyetlen ablakot szeretne létrehozni, például két ablakot szeretne létrehozni, amelyek közül az egyik a vezérlő eszköztárává válik.

Example

RECT rc = {10,10,210,110};
HWND hwndParent, hwndControl;

// get HWND of control's parent window from IOleInPlaceSite interface
m_spInPlaceSite->GetWindow(&hwndParent);
hwndControl = CreateControlWindow(hwndParent, rc);

CComControl::FireOnChanged

Értesíti a tároló fogadóját, hogy egy vezérlőtulajdonság megváltozott.

HRESULT FireOnChanged(DISPID dispID);

Paraméterek

dispID
[in] A módosított tulajdonság azonosítója.

Visszaadott érték

Az egyik standard HRESULT érték.

Megjegyzések

Ha a vezérlőosztály az IPropertyNotifySink függvényből származik, ez a metódus meghívja a CFirePropNotifyEvent::FireOnChanged parancsot , hogy értesítse az összes csatlakoztatott IPropertyNotifySink adaptert arról, hogy a megadott vezérlőtulajdonság megváltozott. Ha a vezérlőosztály nem származik, IPropertyNotifySinkez a metódus S_OK ad vissza.

Ez a metódus akkor is biztonságosan hívható, ha a vezérlő nem támogatja a csatlakozási pontokat.

Example

STDMETHODIMP CMyControl::put_MyText(BSTR newVal)
{
   // store newVal in CComBstr member
   m_bstrMyText = newVal;

   // note the DISPID for the MyText property is 3 in this example
   FireOnChanged(3);

   return S_OK;
}

CComControl::FireOnRequestEdit

Értesíti a tároló fogadóját, hogy egy vezérlőtulajdonság módosulni fog, és hogy az objektum a fogadótól kéri a folytatást.

HRESULT FireOnRequestEdit(DISPID dispID);

Paraméterek

dispID
[in] A módosítani kívánt tulajdonság azonosítója.

Visszaadott érték

Az egyik standard HRESULT érték.

Megjegyzések

Ha a vezérlőosztály az IPropertyNotifySinkből származik, ez a metódus meghívja a CFirePropNotifyEvent::FireOnRequestEdit parancsot , hogy értesítse az összes csatlakoztatott IPropertyNotifySink adaptert, hogy a megadott vezérlőtulajdonság módosulni készül. Ha a vezérlőosztály nem származik, IPropertyNotifySinkez a metódus S_OK ad vissza.

Ez a metódus akkor is biztonságosan hívható, ha a vezérlő nem támogatja a csatlakozási pontokat.

Example

STDMETHODIMP CMyControl::put_MyTitle(BSTR newVal)
{
   // the DISPID for MyTitle in this example is 4
   DISPID dispID = 4;

   // make sure we can change the property
   if (FireOnRequestEdit(dispID) == S_FALSE)
      return S_FALSE;

   // store newVal in CComBstr member
   m_bstrMyTitle = newVal;

   // signal that the property has been changed
   FireOnChanged(dispID);

   return S_OK;
}

CComControl::MessageBox

Hívja meg ezt a metódust egy üzenetmező létrehozásához, megjelenítéséhez és működtetéséhez.

int MessageBox(
    LPCTSTR lpszText,
    LPCTSTR lpszCaption = _T(""),
    UINT nType = MB_OK);

Paraméterek

lpszText
Az üzenetmezőben megjelenítendő szöveg.

lpszCaption
A párbeszédpanel címe. Ha NULL (alapértelmezett), a rendszer a "Hiba" címet használja.

nType
Meghatározza a párbeszédpanel tartalmát és viselkedését. Az elérhető különböző üzenetmezők listáját a Windows SDK dokumentációjában találja a MessageBox bejegyzésben. Az alapértelmezett beállítás egy egyszerű OK gombot biztosít.

Visszaadott érték

Egy egész számértéket ad vissza, amely megadja a Windows SDK dokumentációjában a MessageBox alatt felsorolt menüelem-értékek egyikét.

Megjegyzések

MessageBox a fejlesztés során és a felhasználónak szóló hibaüzenetek vagy figyelmeztető üzenetek egyszerű megjelenítésének módjaként is hasznos.

Lásd még

CWindowImpl osztály
osztály áttekintése
CComControlBase-osztály
CComCompositeControl osztály