Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ta klasa udostępnia metody tworzenia kontrolek ATL i zarządzania nimi.
Ważne
Tej klasy i jej składowych nie można używać w aplikacjach wykonywanych w środowisko wykonawcze systemu Windows.
Składnia
template <class T, class WinBase = CWindowImpl<T>>
class ATL_NO_VTABLE CComControl : public CComControlBase,
public WinBase;
Parametry
T
Klasa implementowania kontrolki.
WinBase
Klasa podstawowa, która implementuje funkcje obsługi okien. Wartość domyślna to CWindowImpl.
Elementy członkowskie
Konstruktory publiczne
| Nazwa/nazwisko | opis |
|---|---|
| CComControl::CComControl | Konstruktor. |
Metody publiczne
| Nazwa/nazwisko | opis |
|---|---|
| CComControl::ControlQueryInterface | Pobiera wskaźnik do żądanego interfejsu. |
| CComControl::CreateControlWindow | Tworzy okno dla kontrolki. |
| CComControl::FireOnChanged | Powiadamia ujście kontenera o zmianie właściwości kontrolki. |
| CComControl::FireOnRequestEdit | Powiadamia ujście kontenera, że właściwość kontrolki ma ulec zmianie i że obiekt ujście, jak kontynuować. |
| CComControl::MessageBox | Wywołaj tę metodę, aby utworzyć, wyświetlić i obsługiwać pole komunikatu. |
Uwagi
CComControl to zestaw przydatnych funkcji pomocnika sterowania i podstawowych elementów członkowskich danych dla kontrolek ATL. Podczas tworzenia standardowej kontrolki lub kontrolki DHTML przy użyciu Kreatora kontrolek ATL kreator automatycznie uzyska klasę z klasy CComControl. CComControl większość jej metod pochodzi z CComControlBase.
Aby uzyskać więcej informacji na temat tworzenia kontrolki, zobacz samouczek ATL. Aby uzyskać więcej informacji na temat Kreatora projektu ATL, zobacz artykuł Tworzenie projektu ATL.
Aby zapoznać się z pokazem CComControl metod i elementów członkowskich danych, zobacz przykład CIRC .
Hierarchia dziedziczenia
WinBase
CComControl
Wymagania
Nagłówek: atlctl.h
CComControl::CComControl
Konstruktor.
CComControl();
Uwagi
Wywołuje konstruktor CComControlBase, przekazując element m_hWnd członkowski danych dziedziczony za pośrednictwem CWindowImpl.
CComControl::ControlQueryInterface
Pobiera wskaźnik do żądanego interfejsu.
virtual HRESULT ControlQueryInterface(const IID& iid, void** ppv);
Parametry
identyfikator iid
[in] Identyfikator GUID żądanego interfejsu.
ppv
[out] Wskaźnik do wskaźnika interfejsu zidentyfikowany przez identyfikator lub wartość NULL, jeśli interfejs nie zostanie znaleziony.
Uwagi
Obsługuje tylko interfejsy w tabeli mapy COM.
Przykład
// 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
Domyślnie tworzy okno dla kontrolki przez wywołanie metody CWindowImpl::Create.
virtual HWND CreateControlWindow(HWND hWndParent, RECT& rcPos);
Parametry
hWndParent
[in] Dojście do okna nadrzędnego lub właściciela. Należy podać prawidłowy uchwyt okna. Okno sterowania jest ograniczone do obszaru okna nadrzędnego.
rcPos
[in] Początkowy rozmiar i położenie okna do utworzenia.
Uwagi
Zastąpi tę metodę, jeśli chcesz zrobić coś innego niż utworzenie pojedynczego okna, na przykład w celu utworzenia dwóch okien, z których jeden staje się paskiem narzędzi kontrolki.
Przykład
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
Powiadamia ujście kontenera o zmianie właściwości kontrolki.
HRESULT FireOnChanged(DISPID dispID);
Parametry
dispID
[in] Identyfikator właściwości, która uległa zmianie.
Wartość zwracana
Jedna ze standardowych wartości HRESULT.
Uwagi
Jeśli klasa sterowania pochodzi z klasy IPropertyNotifySink, ta metoda wywołuje metodę CFirePropNotifyEvent::FireOnChanged , aby powiadomić wszystkie połączone IPropertyNotifySink interfejsy, że określona właściwość kontrolki uległa zmianie. Jeśli klasa sterowania nie pochodzi z IPropertyNotifySinkklasy , ta metoda zwraca S_OK.
Ta metoda jest bezpieczna do wywołania, nawet jeśli kontrolka nie obsługuje punktów połączenia.
Przykład
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
Powiadamia ujście kontenera, że właściwość kontrolki ma ulec zmianie i że obiekt ujście, jak kontynuować.
HRESULT FireOnRequestEdit(DISPID dispID);
Parametry
dispID
[in] Identyfikator właściwości, która ma ulec zmianie.
Wartość zwracana
Jedna ze standardowych wartości HRESULT.
Uwagi
Jeśli klasa sterowania pochodzi z klasy IPropertyNotifySink, ta metoda wywołuje metodę CFirePropNotifyEvent::FireOnRequestEdit , aby powiadomić wszystkie połączone IPropertyNotifySink interfejsy, że określona właściwość kontrolki ma się zmienić. Jeśli klasa sterowania nie pochodzi z IPropertyNotifySinkklasy , ta metoda zwraca S_OK.
Ta metoda jest bezpieczna do wywołania, nawet jeśli kontrolka nie obsługuje punktów połączenia.
Przykład
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
Wywołaj tę metodę, aby utworzyć, wyświetlić i obsługiwać pole komunikatu.
int MessageBox(
LPCTSTR lpszText,
LPCTSTR lpszCaption = _T(""),
UINT nType = MB_OK);
Parametry
lpszText
Tekst, który ma być wyświetlany w polu wiadomości.
lpszCaption
Tytuł okna dialogowego. Jeśli wartość NULL (wartość domyślna), zostanie użyty tytuł "Błąd".
nType
Określa zawartość i zachowanie okna dialogowego. Zobacz wpis MessageBox w dokumentacji zestawu Windows SDK, aby zapoznać się z listą dostępnych pól komunikatów. Wartość domyślna udostępnia prosty przycisk OK .
Wartość zwracana
Zwraca wartość całkowitą określającą jedną z wartości elementów menu wymienionych w obszarze MessageBox w dokumentacji zestawu Windows SDK.
Uwagi
MessageBox jest przydatny zarówno podczas programowania, jak i jako łatwy sposób wyświetlania użytkownikowi komunikatu o błędzie lub ostrzeżeniu.
Zobacz też
Klasa CWindowImpl
Omówienie klasy
Klasa CComControlBase
Klasa CComCompositeControl