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