Freigeben über


CComCompositeControl Class

Diese Klasse stellt die Methoden, die erforderlich sind, um ein zusammengesetztes Steuerelement zu implementieren.

Wichtig

Diese Klasse und ihre Member können in Anwendungen nicht verwendet werden, die in der Windows Runtime ausführen.

template < 
class T  
> 
class CComCompositeControl : 
public CComControl< T, CAxDialogImpl< T > >

Parameter

  • T
    Die Klasse, die von abgeleitet CComObjectRoot oder von CComObjectRootEx sowie beliebiger anderer Schnittstellen möchten Sie für das zusammengesetzte Steuerelement unterstützen.

Mitglieder

Öffentliche Konstruktoren

Name

Description

CComCompositeControl::CComCompositeControl

Der -Konstruktor.

CComCompositeControl::~CComCompositeControl

Der Destruktor.

Öffentliche Methoden

Name

Description

CComCompositeControl::AdviseSinkMap

Rufen Sie diese Methode auf, um alle Steuerelemente Anmeldung oder abzumelden, die durch das zusammengesetzte Steuerelement gehostet werden.

CComCompositeControl::CalcExtent

Rufen Sie diese Methode auf, um die Größe in HIMETRIC Einheiten der Dialogfeldressource zu berechnen, die verwendet wird, um das zusammengesetzte Steuerelement zu hosten.

CComCompositeControl::Create

Diese Methode wird aufgerufen, um das Steuerelementfenster für das zusammengesetzte Steuerelement zu erstellen.

CComCompositeControl::CreateControlWindow

Rufen Sie diese Methode auf, um das Steuerelementfenster erstellen und jedes gehostete Steuerelement anzumelden.

CComCompositeControl::SetBackgroundColorFromAmbient

Rufen Sie diese Methode auf, um die Hintergrundfarbe des zusammengesetzten Steuerelements mithilfe der Hintergrundfarbe des Containers festzulegen.

Öffentliche Datenmember

Name

Description

CComCompositeControl::m_hbrBackground

Der Hintergrundpinsel.

CComCompositeControl::m_hWndFocus

Das Handle des Fensters, das gerade den Fokus besitzt.

Hinweise

Die Klassen, die von der Klasse CComCompositeControl abgeleitet werden, erben die Funktionalität eines ActiveX-zusammengesetztenSteuerelements. ActiveX-Steuerelemente, die von CComCompositeControl abgeleitet werden, wird durch ein Standarddialogfeld gehostet. Diese Typen von Steuerelementen werden zusammengesetzte Steuerelemente aufgerufen, da sie in der Lage sind, andere Steuerelemente zu hosten (systemeigene Windows-Steuerelement- und ActiveX-Steuerelemente).

CComCompositeControl identifiziert die Dialogfeldressource, um zu verwenden, wenn das zusammengesetzte Steuerelement erstellt, indem es einen aufgelisteten Datenmember in der untergeordneten Klasse sucht. Der Member IDD dieser untergeordneten Klasse wird dem Ressourcen-ID der Dialogfeldressource festgelegt, die als das Fenster des Steuerelements verwendet wird. Das folgende Beispiel des Datenmembers, den die Klasse, die von CComCompositeControl abgeleitet wird, enthalten soll, um die für das Fenster verwendet werden Dialogfeldressource zu identifizieren, des Steuerelements:

enum { IDD = IDD_MYCOMPOSITE };

Hinweis

Zusammengesetzte Steuerelemente sind immer Steuerelemente mit Fenster, obwohl sie fensterlose Steuerelemente enthalten können.

Ein Steuerelement implementiert wird CComCompositeControl von abgeleitete Klasse hat das standardmäßige integrierte Drücken der TAB-TASTEen-Verhalten. Wenn das Steuerelement den Fokus erhält, von in mit der TAB-TASTE werden einer enthaltenen Anwendung, die TAB-TASTE drücken nacheinander bewirkt wurde den Fokus, durch die Steuerelemente alle zusammengesetzten Steuerelements, dann aus dem zusammengesetzten Steuerelement ausgelesen und an zum nächsten Element in der Aktivierreihenfolge des Containers durchlaufen werden. Die Aktivierreihenfolge der gehosteten Steuerelemente wird durch die Dialogfeldressource bestimmt und die Reihenfolge, in der Drücken der TAB-TASTE auftritt.

Hinweis

Damit Zugriffstasten ordnungsgemäß arbeiten mit CComCompositeControl, ist es notwendig, eine Zugriffstastentabelle zu laden, wie das Steuerelement erstellt wird, werden das Handle und die Anzahl von Zugriffstasten zurück in IOleControlImpl::GetControlInfo und zerstört schließlich die Tabelle, wenn das Steuerelement freigegeben wird.

Beispiel

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

Vererbungshierarchie

WinBase

CComControlBase

CComControl

CComCompositeControl

Anforderungen

Header: atlctl.h

Siehe auch

Referenz

CComControl Class

Konzepte

ATL-Grundlagen von zusammengesetzten Steuerelementen

Weitere Ressourcen

ATL Class Overview