Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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
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ış