Condividi tramite


Classe di CComCompositeControl

Questa classe fornisce metodi necessari per implementare un controllo composito.

Nota importanteImportante

Questa classe e i relativi membri non possono essere utilizzati nelle applicazioni eseguite in Windows Runtime.

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

Parametri

Membri

z3e7bbb1.collapse_all(it-it,VS.110).gifCostruttori pubblici

Nome

Descrizione

CComCompositeControl::CComCompositeControl

Costruttore.

CComCompositeControl::~CComCompositeControl

Il distruttore.

z3e7bbb1.collapse_all(it-it,VS.110).gifMetodi pubblici

Nome

Descrizione

CComCompositeControl::AdviseSinkMap

Chiamare questo metodo per consigliare o il unadvise tutti i controlli ospitati dal controllo composito.

CComCompositeControl::CalcExtent

Chiamare questo metodo per calcolare la dimensione in unità HIMETRIC di risorsa finestra di dialogo utilizzata per ospitare il controllo composito.

CComCompositeControl::Create

Questo metodo viene chiamato per creare la finestra di controllo per il controllo composito.

CComCompositeControl::CreateControlWindow

Chiamare questo metodo per creare la finestra di controllo e consigliare per tutto il controllo ospitato.

CComCompositeControl::SetBackgroundColorFromAmbient

Chiamare questo metodo per impostare il colore di sfondo del controllo composito con il colore di sfondo del contenitore.

z3e7bbb1.collapse_all(it-it,VS.110).gifMembri dati pubblici

Nome

Descrizione

CComCompositeControl::m_hbrBackground

Pennello per lo sfondo.

CComCompositeControl::m_hWndFocus

Handle della finestra correntemente attivo.

Note

Le classi derivate dalla classe CComCompositeControl ereditano la funzionalità di un controllo composito ActiveX.I controlli ActiveX derivati da CComCompositeControl contenuti in una finestra di dialogo standard.Questi tipi di controlli sono denominati controlli compositi poiché possono contenere altri controlli (controlli Windows nativi e controlli ActiveX).

CComCompositeControl identifica la finestra di dialogo da utilizzare per la creazione del controllo composito ricerca di un membro dati enumerato la classe figlio.Il membro IDD di questa classe figlio viene impostato sull'ID di risorsa di risorsa finestra di dialogo che sarà utilizzata come finestra del controllo.L'esempio seguente è un esempio del membro dati della classe derivata da CComCompositeControl deve contenere per identificare la finestra di dialogo da utilizzare per la finestra del controllo:

enum { IDD = IDD_MYCOMPOSITE };

[!NOTA]

I controlli compositi sono sempre controlli con finestre, sebbene possano contenere i controlli privi di finestra.

Un controllo implementato da CComCompositeControlnella classe derivata ha comportamento di tabulazione predefinito incorporato.Quando il controllo riceve lo stato attivo da catalogato in un'applicazione contenitore, successivamente premere il tasto TAB consente lo stato attivo a essere ciclato dai controlli contenuti in un controllo composito, quindi dal controllo composito e sull'elemento successivo dell'ordine di tabulazione del contenitore.L'ordine di tabulazione dei controlli ospitati è determinato dalla finestra di dialogo e determina l'ordine di tabulazione si verificherà.

[!NOTA]

Affinché i tasti di scelta rapida funzioni correttamente con CComCompositeControl, è necessario caricare una tabella di tasti di scelta rapida come il controllo, passa l'handle e il numero di tasti in IOleControlImpl::GetControlInfoe infine elimina la tabella quando il controllo viene rilasciato.

Esempio

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

Gerarchia di ereditarietà

WinBase

CComControlBase

CComControl

CComCompositeControl

Requisiti

Header: atlctl.h

Vedere anche

Riferimenti

Classe di CComControl

Concetti

Nozioni di base del controllo composito

Altre risorse

I cenni preliminari sulle classi ATL