Aracılığıyla paylaş


CComCompositeControl Sınıfı

Bu sınıf, bileşik denetim uygulamak için gereken yöntemleri 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 CComCompositeControl : public CComControl<T,CAxDialogImpl<T>>

Parametreler

T
Sınıfınız, CComObjectRoot veya CComObjectRootEx'ten ve bileşik denetiminiz için desteklemek istediğiniz diğer arabirimlerden türetilir.

Üyeler

Ortak Oluşturucular

Veri Akışı Adı Açıklama
CComCompositeControl::CComCompositeControl Oluşturucu.
CComCompositeControl::~CComCompositeControl Yok edici.

Genel Yöntemler

Veri Akışı Adı Açıklama
CComCompositeControl::AdviseSinkMap Bileşik denetim tarafından barındırılan tüm denetimleri önermek veya eklemesini açmak için bu yöntemi çağırın.
CComCompositeControl::CalcExtent Bileşik denetimi barındırmak için kullanılan iletişim kutusu kaynağının HIMETRIC birimlerindeki boyutu hesaplamak için bu yöntemi çağırın.
CComCompositeControl::Create Bileşik denetimin denetim penceresini oluşturmak için bu yöntem çağrılır.
CComCompositeControl::CreateControlWindow Denetim penceresini oluşturmak ve barındırılan herhangi bir denetimi önermek için bu yöntemi çağırın.
CComCompositeControl::SetBackgroundColorFromAmbient Kapsayıcının arka plan rengini kullanarak bileşik denetimin arka plan rengini ayarlamak için bu yöntemi çağırın.

Ortak Veri Üyeleri

Veri Akışı Adı Açıklama
CComCompositeControl::m_hbrBackground Arka plan fırçası.
CComCompositeControl::m_hWndFocus Şu anda odağı olan pencerenin tutamacı.

Açıklamalar

Sınıfından türetilen sınıflar CComCompositeControl , ActiveX bileşik denetiminin işlevselliğini devralır. 'den CComCompositeControl türetilen ActiveX denetimleri standart bir iletişim kutusu tarafından barındırılır. Bu denetim türleri, diğer denetimleri (yerel Windows denetimleri ve ActiveX denetimleri) barındırabildikleri için bileşik denetimler olarak adlandırılır.

CComCompositeControl , alt sınıfta numaralandırılmış veri üyesini arayarak bileşik denetim oluştururken kullanılacak iletişim kutusu kaynağını tanımlar. Bu alt sınıfın üye IDD'si, denetimin penceresi olarak kullanılacak iletişim kutusu kaynağının kaynak kimliğine ayarlanır. Aşağıda, denetimin penceresi için kullanılacak iletişim kutusu kaynağını tanımlamak için sınıfının türetilmiş CComCompositeControl olması gereken veri üyesinin bir örneği verilmiştir:

enum { IDD = IDD_MYCOMPOSITE };

Not

Bileşik denetimler her zaman pencereli denetimlerdir, ancak penceresiz denetimler içerebilir.

Türetilmiş bir sınıf tarafından uygulanan bir CComCompositeControldenetimin yerleşik varsayılan sekme davranışı vardır. Denetim, içeriği içeren bir uygulamada sekme tuşuyla odağı aldığında, SEKME tuşuna art arda basılması odağın bileşik denetimin içerdiği tüm denetimler arasında döngüye alınmasına, ardından bileşik denetimin dışına ve kapsayıcının sekme sırasında bir sonraki öğeye geçmesine neden olur. Barındırılan denetimlerin sekme sırası iletişim kutusu kaynağı tarafından belirlenir ve sekmenin hangi sırada gerçekleşeceğini belirler.

Not

Hızlandırıcıların bir CComCompositeControlile düzgün çalışması için, denetim oluşturulurken bir hızlandırıcı tablosu yüklemek, tanıtıcıyı ve hızlandırıcı sayısını IOleControlImpl::GetControlInfo'ya geri geçirmek ve son olarak denetim serbest bırakıldığında tabloyu yok etmek gerekir.

Örnek

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

Devralma Hiyerarşisi

WinBase

CComControlBase

CComControl

CComCompositeControl

Gereksinimler

Üst bilgi: atlctl.h

CComCompositeControl::AdviseSinkMap

Bileşik denetim tarafından barındırılan tüm denetimleri önermek veya eklemesini açmak için bu yöntemi çağırın.

HRESULT AdviseSinkMap(bool bAdvise);

Parametreler

bVise ekle
Tüm denetimler önerilecekse true; aksi takdirde false.

Dönüş Değeri

Value Açıklama
S_OK Olay havuzu haritasındaki tüm denetimler başarıyla bağlandı veya olay kaynağıyla bağlantısı kesildi.
E_FAIL Olay havuzu haritasındaki tüm denetimler başarıyla bağlanamadı veya olay kaynağıyla bağlantısı kesilemedi.
E_POINTER Bu hata genellikle denetimin olay havuzu eşlemesindeki bir girişle ilgili bir sorunu veya bir veya IDispEventSimpleImpl temel sınıfında kullanılan şablon bağımsız değişkeniyle ilgili bir IDispEventImpl sorunu gösterir.
CONNECT_E_ADVISELIMIT Bağlantı noktası zaten bağlantı sınırına ulaştı ve daha fazlasını kabul edemez.
CONNECT_E_CANNOTCONNECT Havuz, bu bağlantı noktası için gereken arabirimi desteklemiyor.
CONNECT_E_NOCONNECTION Tanımlama bilgisi değeri geçerli bir bağlantıyı temsil etmiyor. Bu hata genellikle denetimin olay havuzu eşlemesindeki bir girişle ilgili bir sorunu veya bir veya IDispEventSimpleImpl temel sınıfında kullanılan şablon bağımsız değişkeniyle ilgili bir IDispEventImpl sorunu gösterir.

Açıklamalar

Bu yöntemin temel uygulaması, olay havuzu eşlemesindeki girdiler arasında arama yapar. Daha sonra, olay havuzu eşlemesinin havuz girdileri tarafından açıklanan COM nesnelerine bağlantı noktalarını önerir veya bağlantısını açar. Bu üye yöntemi, türetilmiş sınıfın havuz eşlemesindeki önerilecek veya önerilmeyen her denetim için bir örneğinden IDispEventImpl devraldığı gerçeğine de dayanır.

CComCompositeControl::CalcExtent

Bileşik denetimi barındırmak için kullanılan iletişim kutusu kaynağının HIMETRIC birimlerindeki boyutu hesaplamak için bu yöntemi çağırın.

BOOL CalcExtent(SIZE& size);

Parametreler

boyut
Bu yöntemle doldurulacak bir SIZE yapı başvurusu.

Dönüş Değeri

Denetim bir iletişim kutusu tarafından barındırılıyorsa TRUE; aksi takdirde YANLIŞ.

Açıklamalar

Boyut, size parametresinde döndürülür.

CComCompositeControl::Create

Bileşik denetimin denetim penceresini oluşturmak için bu yöntem çağrılır.

HWND Create(
    HWND hWndParent,
    RECT& /* rcPos */,
    LPARAM dwInitParam = NULL);

Parametreler

hWndParent
Denetimin üst penceresinin tutamacı.

rcPos
Ayrılmış.

dwInitParam
Denetim oluşturma sırasında denetime geçirilecek veriler. dwInitParam olarak geçirilen veriler, oluşturulduğunda bileşik denetime gönderilecek WM_INITDIALOG iletisinin LPARAM parametresi olarak gösterilir.

Dönüş Değeri

Yeni oluşturulan bileşik denetim iletişim kutusunun tanıtıcısı.

Açıklamalar

Bu yöntem genellikle denetimin yerinde etkinleştirilmesi sırasında çağrılır.

CComCompositeControl::CComCompositeControl

Oluşturucu.

CComCompositeControl();

Açıklamalar

CComCompositeControl::m_hbrBackground ve CComCompositeControl::m_hWndFocus veri üyelerini NULL olarak başlatır.

CComCompositeControl::~CComCompositeControl

Yok edici.

~CComCompositeControl();

Açıklamalar

Varsa arka plan nesnesini siler.

CComCompositeControl::CreateControlWindow

Denetim penceresini oluşturmak ve barındırılan denetimleri önermek için bu yöntemi çağırın.

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

Parametreler

hWndParent
Denetimin üst penceresinin tutamacı.

rcPos
İstemci koordinatlarındaki bileşik denetimin hWndParent'e göre konum dikdörtgeni.

Dönüş Değeri

Yeni oluşturulan bileşik denetim iletişim kutusuna bir tanıtıcı döndürür.

Açıklamalar

Bu yöntem CComCompositeControl::Create ve CComCompositeControl::AdviseSinkMap'i çağırır.

CComCompositeControl::m_hbrBackground

Arka plan fırçası.

HBRUSH m_hbrBackground;

CComCompositeControl::m_hWndFocus

Şu anda odağı olan pencerenin tutamacı.

HWND m_hWndFocus;

CComCompositeControl::SetBackgroundColorFromAmbient

Kapsayıcının arka plan rengini kullanarak bileşik denetimin arka plan rengini ayarlamak için bu yöntemi çağırın.

HRESULT SetBackgroundColorFromAmbient();

Dönüş Değeri

Başarıda S_OK veya hatada HRESULT hatası döndürür.

Ayrıca bkz.

CComControl Sınıfı
Bileşik Denetim Temelleri
Sınıfa Genel Bakış