Aracılığıyla paylaş


CComControl Sınıfı

Bu sınıf, ATL denetimlerini oluşturmak ve yönetmek için yöntemler sağlar.

Önemli

Bu sınıf ve üyeleri Windows Çalışma Zamanı yürütülen uygulamalarda kullanılamaz.

Sözdizimi

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

Parametreler

T
Denetimi uygulayan sınıf.

WinBase
Pencereleme işlevlerini uygulayan temel sınıf. Varsayılan olarak CWindowImpl'yi kullanır.

Üyeler

Ortak Oluşturucular

Veri Akışı Adı Açıklama
CComControl::CComControl Oluşturucu.

Genel Yöntemler

Veri Akışı Adı Açıklama
CComControl::ControlQueryInterface İstenen arabirim için bir işaretçi alır.
CComControl::CreateControlWindow Denetim için bir pencere oluşturur.
CComControl::FireOnChanged Kapsayıcının havuzuna bir denetim özelliğinin değiştiğini bildirir.
CComControl::FireOnRequestEdit Kapsayıcının havuzuna bir denetim özelliğinin değişmek üzere olduğunu ve nesnenin havuza nasıl devam etmek istediğini bildirir.
CComControl::MessageBox İleti kutusu oluşturmak, görüntülemek ve çalıştırmak için bu yöntemi çağırın.

Açıklamalar

CComControl , ATL denetimleri için yararlı denetim yardımcı işlevleri ve temel veri üyeleri kümesidir. ATL Denetim Sihirbazı'nı kullanarak standart bir denetim veya DHTML denetimi oluşturduğunuzda, sihirbaz sınıfınızı öğesinden CComControlotomatik olarak türetecektir. CComControl yöntemlerinin çoğunu CComControlBase'den türetir.

Denetim oluşturma hakkında daha fazla bilgi için bkz. ATL Öğreticisi. ATL Proje Sihirbazı hakkında daha fazla bilgi için ATL Projesi Oluşturma makalesine bakın.

Yöntemlerin CComControl ve veri üyelerinin gösterimi için CIRC örneğine bakın.

Devralma Hiyerarşisi

WinBase

CComControlBase

CComControl

Gereksinimler

Üst bilgi: atlctl.h

CComControl::CComControl

Oluşturucu.

CComControl();

Açıklamalar

CWindowImpl aracılığıyla devralınan veri üyesini m_hWnd geçirerek CComControlBase oluşturucuyu çağırır.

CComControl::ControlQueryInterface

İstenen arabirim için bir işaretçi alır.

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

Parametreler

iid
[in] İstenen arabirimin GUID'i.

ppv
[out] iid tarafından tanımlanan arabirim işaretçisi işaretçisi veya arabirim bulunamazsa NULL.

Açıklamalar

Yalnızca COM eşleme tablosundaki arabirimleri işler.

Örnek

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

Varsayılan olarak, çağrısı CWindowImpl::Createyaparak denetim için bir pencere oluşturur.

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

Parametreler

hWndParent
[in] Üst veya sahip penceresinin tutamacı. Geçerli bir pencere tutamacı sağlanmalıdır. Denetim penceresi, üst penceresinin alanıyla sınırlı.

rcPos
[in] Oluşturulacak pencerenin başlangıç boyutu ve konumu.

Açıklamalar

Tek bir pencere oluşturmaktan başka bir şey yapmak istiyorsanız( örneğin, biri denetiminiz için bir araç çubuğuna dönüşen iki pencere oluşturmak) bu yöntemi geçersiz kılın.

Örnek

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

Kapsayıcının havuzuna bir denetim özelliğinin değiştiğini bildirir.

HRESULT FireOnChanged(DISPID dispID);

Parametreler

dispID
[in] Değiştirilen özelliğin tanımlayıcısı.

Dönüş Değeri

Standart HRESULT değerlerinden biri.

Açıklamalar

Denetim sınıfınız IPropertyNotifySink'ten türetilirse, bu yöntem belirtilen denetim özelliğinin değiştiğini tüm bağlı IPropertyNotifySink arabirimlere bildirmek için CFirePropNotifyEvent::FireOnChanged öğesini çağırır. Denetim sınıfınız öğesinden IPropertyNotifySinktüretilmezse, bu yöntem S_OK döndürür.

Denetiminiz bağlantı noktalarını desteklemese bile bu yöntemi çağırmak güvenlidir.

Örnek

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

Kapsayıcının havuzuna bir denetim özelliğinin değişmek üzere olduğunu ve nesnenin havuza nasıl devam etmek istediğini bildirir.

HRESULT FireOnRequestEdit(DISPID dispID);

Parametreler

dispID
[in] Değiştirmek üzere olan özelliğin tanımlayıcısı.

Dönüş Değeri

Standart HRESULT değerlerinden biri.

Açıklamalar

Denetim sınıfınız IPropertyNotifySink'ten türetiliyorsa, bu yöntem CFirePropNotifyEvent::FireOnRequestEdit öğesini çağırarak tüm bağlı IPropertyNotifySink arabirimlere belirtilen denetim özelliğinin değişmek üzere olduğunu bildirir. Denetim sınıfınız öğesinden IPropertyNotifySinktüretilmezse, bu yöntem S_OK döndürür.

Denetiminiz bağlantı noktalarını desteklemese bile bu yöntemi çağırmak güvenlidir.

Örnek

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

İleti kutusu oluşturmak, görüntülemek ve çalıştırmak için bu yöntemi çağırın.

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

Parametreler

lpszText
İleti kutusunda görüntülenecek metin.

lpszCaption
İletişim kutusu başlığı. NULL ise (varsayılan), "Hata" başlığı kullanılır.

nType
İletişim kutusunun içeriğini ve davranışını belirtir. Kullanılabilir farklı ileti kutularının listesi için Windows SDK belgelerindeki MessageBox girdisine bakın. Varsayılan değer basit bir Tamam düğmesi sağlar.

Dönüş Değeri

Windows SDK belgelerinde MessageBox altında listelenen menü öğesi değerlerinden birini belirten bir tamsayı değeri döndürür.

Açıklamalar

MessageBox hem geliştirme sırasında hem de kullanıcıya hata veya uyarı iletisi görüntülemenin kolay bir yolu olarak kullanışlıdır.

Ayrıca bkz.

CWindowImpl Sınıfı
Sınıfa Genel Bakış
CComControlBase Sınıfı
CComCompositeControl Sınıfı