Classe CComboBoxEx

Estende il controllo della casella combinata fornendo il supporto per elenchi di immagini.

Sintassi

class CComboBoxEx : public CComboBox

Membri

Costruttori pubblici

Nome Descrizione
CComboBoxEx::CComboBoxEx Costruisce un oggetto CComboBoxEx.

Metodi pubblici

Nome Descrizione
CComboBoxEx::Create Crea la casella combinata e la associa all'oggetto CComboBoxEx .
CComboBoxEx::CreateEx Crea una casella combinata con gli stili estesi di Windows specificati e la associa a un ComboBoxEx oggetto .
CComboBoxEx::D eleteItem Rimuove un elemento da un ComboBoxEx controllo .
CComboBoxEx::GetComboBoxCtrl Recupera un puntatore al controllo casella combinata figlio.
CComboBoxEx::GetEditCtrl Recupera l'handle nella parte del controllo di modifica di un ComboBoxEx controllo.
CComboBoxEx::GetExtendedStyle Recupera gli stili estesi in uso per un ComboBoxEx controllo .
CComboBoxEx::GetImageList Recupera un puntatore all'elenco di immagini assegnato a un ComboBoxEx controllo .
CComboBoxEx::GetItem Recupera le informazioni sugli elementi per un determinato ComboBoxEx elemento.
CComboBoxEx::HasEditChanged Determina se l'utente ha modificato il contenuto del ComboBoxEx controllo di modifica digitando.
CComboBoxEx::InsertItem Inserisce un nuovo elemento in un ComboBoxEx controllo .
CComboBoxEx::SetExtendedStyle Imposta gli stili estesi all'interno di un ComboBoxEx controllo .
CComboBoxEx::SetImageList Imposta un elenco di immagini per un ComboBoxEx controllo .
CComboBoxEx::SetItem Imposta gli attributi per un elemento in un ComboBoxEx controllo .
CComboBoxEx::SetWindowTheme Imposta lo stile di visualizzazione del controllo casella combinata estesa.

Osservazioni:

Usando CComboBoxEx per creare controlli casella combinata, non è più necessario implementare il codice di disegno dell'immagine. Usare invece CComboBoxEx per accedere alle immagini da un elenco di immagini.

Supporto per l'elenco di immagini

In una casella combinata standard, il proprietario della casella combinata è responsabile del disegno di un'immagine creando la casella combinata come controllo di disegno proprietario. Quando si utilizza CComboBoxEx, non è necessario impostare gli stili di disegno CBS_OWNERDRAWFIXED e CBS_HASSTRINGS perché sono impliciti. In caso contrario, è necessario scrivere codice per eseguire operazioni di disegno. Un CComboBoxEx controllo supporta fino a tre immagini per elemento: una per uno stato selezionato, una per uno stato non selezionato e una per un'immagine di sovrimpressione.

Stili

CComboBoxEx supporta gli stili CBS_SIMPLE, CBS_DROPDOWN, CBS_DROPDOWNLIST e WS_CHILD. Tutti gli altri stili passati quando si crea la finestra vengono ignorati dal controllo . Dopo aver creato la finestra, è possibile specificare altri stili di caselle combinate chiamando la CComboBoxEx funzione membro SetExtendedStyle. Con questi stili, è possibile:

  • Impostare le ricerche di stringhe nell'elenco per fare distinzione tra maiuscole e minuscole.

  • Creare un controllo casella combinata che usa la barra ('/'), la barra rovesciata ('\') e i caratteri punto ('.') come delimitatori di parola. In questo modo gli utenti possono passare dalla parola alla parola, usando i tasti di scelta rapida CTRL+ FRECCIA.

  • Impostare il controllo casella combinata per visualizzare o non visualizzare un'immagine. Se non viene visualizzata alcuna immagine, la casella combinata può rimuovere il rientro di testo che contiene un'immagine.

  • Creare un controllo casella combinata stretta, incluso il ridimensionamento in modo che ritaglia la casella combinata più ampia che contiene.

Questi flag di stile sono descritti più avanti in Uso di CComboBoxEx.

Attributi dell'elemento di conservazione e callback degli elementi

Le informazioni sugli elementi, ad esempio indici per elementi e immagini, valori di rientro e stringhe di testo, vengono archiviate nella struttura Win32 COMBOBOXEXITEM, come descritto in Windows SDK. La struttura contiene anche membri che corrispondono ai flag di callback.

Per una discussione dettagliata, concettuale, vedere Uso di CComboBoxEx.

Gerarchia di ereditarietà

CObject

CCmdTarget

CWnd

CComboBox

CComboBoxEx

Requisiti

Intestazione: afxcmn.h

CComboBoxEx::CComboBoxEx

Chiamare questa funzione membro per creare un CComboBoxEx oggetto .

CComboBoxEx();

CComboBoxEx::Create

Crea la casella combinata e la associa all'oggetto CComboBoxEx .

virtual BOOL Create(
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

Parametri

dwStyle
Specifica la combinazione di stili casella combinata applicati alla casella combinata. Per altre informazioni sugli stili, vedere la sezione Osservazioni di seguito.

rect
Riferimento a un oggetto CRect o a una struttura RECT, ovvero la posizione e le dimensioni della casella combinata.

pParentWnd
Puntatore a un oggetto CWnd che rappresenta la finestra padre della casella combinata (in genere un oggetto CDialog). Non deve essere NULL.

nID
Specifica l'ID di controllo della casella combinata.

Valore restituito

Diverso da zero se l'oggetto è stato creato correttamente; in caso contrario, 0.

Osservazioni:

Creare un CComboBoxEx oggetto in due passaggi:

  1. Chiamare CComboBoxEx per costruire un CComboBoxEx oggetto .

  2. Chiamare questa funzione membro, che crea la casella combinata windows estesa e la collega all'oggetto CComboBoxEx .

Quando si chiama Create, MFC inizializza i controlli comuni.

Quando si crea la casella combinata, è possibile specificare uno o tutti gli stili di casella combinata seguenti:

  • CBS_SIMPLE

  • CBS_DROPDOWN

  • CBS_DROPDOWNLIST

  • CBS_AUTOHSCROLL

  • WS_CHILD

Tutti gli altri stili passati quando si crea la finestra vengono ignorati. Il ComboBoxEx controllo supporta anche stili estesi che forniscono funzionalità aggiuntive. Questi stili sono descritti in Stili estesi del controllo ComboBoxEx in Windows SDK. Impostare questi stili chiamando SetExtendedStyle.

Se si desidera usare gli stili di windows estesi con il controllo, chiamare CreateEx anziché Create.

CComboBoxEx::CreateEx

Chiamare questa funzione per creare un controllo casella combinata estesa (una finestra figlio) e associarlo all'oggetto CComboBoxEx .

virtual BOOL CreateEx(
    DWORD dwExStyle,
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

Parametri

dwExStyle
Specifica lo stile esteso del controllo da creare. Per un elenco degli stili di Windows estesi, vedere il parametro dwExStyle per CreateWindowEx in Windows SDK.

dwStyle
Stile del controllo casella combinata. Vedere Creare per un elenco di stili.

rect
Riferimento a una struttura RECT che descrive le dimensioni e la posizione della finestra da creare, nelle coordinate client di pParentWnd.

pParentWnd
Puntatore alla finestra padre del controllo.

nID
ID finestra figlio del controllo.

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Osservazioni:

Usare CreateEx invece di Create applicare stili di Windows estesi, specificati dalla prefazione dello stile esteso di Windows WS_EX_.

CreateEx crea il controllo con gli stili di Windows estesi specificati da dwExStyle. È necessario impostare stili estesi specifici di un controllo casella combinata estesa usando SetExtendedStyle. Ad esempio, usare CreateEx per impostare stili come WS_EX_CONTEXTHELP, ma usare SetExtendedStyle per impostare stili come CBES_EX_CASESENSITIVE. Per altre informazioni, vedere gli stili descritti nell'argomento Stili estesi di controllo ComboBoxEx in Windows SDK.

CComboBoxEx::D eleteItem

Rimuove un elemento da un ComboBoxEx controllo .

int DeleteItem(int iIndex);

Parametri

iIndex
Indice in base zero dell'elemento da rimuovere.

Valore restituito

Numero di elementi rimanenti nel controllo. Se iIndex non è valido, la funzione restituisce CB_ERR.

Osservazioni:

Questa funzione membro implementa la funzionalità del messaggio CBEM_DELETEITEM, come descritto in Windows SDK. Quando si chiama DeleteItem, alla finestra padre verrà inviato un messaggio di WM_NOTIFY con CBEN_DELETEITEM notifica.

CComboBoxEx::GetComboBoxCtrl

Chiamare questa funzione membro per ottenere un puntatore a un controllo casella combinata all'interno di un CComboBoxEx oggetto .

CComboBox* GetComboBoxCtrl();

Valore restituito

Puntatore a un oggetto CComboBox.

Osservazioni:

Il CComboBoxEx controllo è costituito da una finestra padre, che incapsula un oggetto CComboBox.

L'oggetto CComboBox a cui punta il valore restituito è un oggetto temporaneo e viene eliminato definitivamente durante il successivo tempo di elaborazione inattiva.

CComboBoxEx::GetEditCtrl

Chiamare questa funzione membro per ottenere un puntatore al controllo di modifica per una casella combinata.

CEdit* GetEditCtrl();

Valore restituito

Puntatore a un oggetto CEdit .

Osservazioni:

Un CComboBoxEx controllo usa una casella di modifica quando viene creata con lo stile CBS_DROPDOWN.

L'oggetto CEdit a cui punta il valore restituito è un oggetto temporaneo e viene eliminato definitivamente durante il successivo tempo di elaborazione inattiva.

CComboBoxEx::GetExtendedStyle

Chiamare questa funzione membro per ottenere gli stili estesi usati per un CComboBoxEx controllo .

DWORD GetExtendedStyle() const;

Valore restituito

Valore DWORD che contiene gli stili estesi utilizzati per il controllo casella combinata.

Osservazioni:

Per altre informazioni su questi stili, vedi Stili estesi di controllo ComboBoxEx in Windows SDK.

CComboBoxEx::GetImageList

Chiamare questa funzione membro per ottenere un puntatore all'elenco di immagini usato da un CComboBoxEx controllo .

CImageList* GetImageList() const;

Valore restituito

Puntatore a un oggetto CImageList . Se ha esito negativo, questa funzione membro restituisce NULL.

Osservazioni:

L'oggetto CImageList a cui punta il valore restituito è un oggetto temporaneo e viene eliminato definitivamente durante il successivo tempo di elaborazione inattiva.

CComboBoxEx::GetItem

Recupera le informazioni sugli elementi per un determinato ComboBoxEx elemento.

BOOL GetItem(COMBOBOXEXITEM* pCBItem);

Parametri

pCBItem
Puntatore a una struttura COMBOBOXEXITEM che riceverà le informazioni sull'elemento.

Valore restituito

Diverso da zero se l'operazione ha avuto esito positivo; in caso contrario, 0.

Osservazioni:

Questa funzione membro implementa la funzionalità del messaggio CBEM_GETITEM, come descritto in Windows SDK.

CComboBoxEx::HasEditChanged

Determina se l'utente ha modificato il contenuto del ComboBoxEx controllo di modifica digitando.

BOOL HasEditChanged();

Valore restituito

Diverso da zero se l'utente ha digitato nella casella di modifica del controllo; in caso contrario, 0.

Osservazioni:

Questa funzione membro implementa la funzionalità del messaggio CBEM_HASEDITCHANGED, come descritto in Windows SDK.

CComboBoxEx::InsertItem

Inserisce un nuovo elemento in un ComboBoxEx controllo .

int InsertItem(const COMBOBOXEXITEM* pCBItem);

Parametri

pCBItem
Puntatore a una struttura COMBOBOXEXITEM che riceverà le informazioni sull'elemento. Questa struttura contiene i valori del flag di callback per l'elemento.

Valore restituito

Indice in corrispondenza del quale il nuovo elemento è stato inserito in caso di esito positivo; in caso contrario -1.

Osservazioni:

Quando si chiama InsertItem, alla finestra padre verrà inviato un messaggio di WM_NOTIFY con CBEN_INSERTITEM notifica.

CComboBoxEx::SetExtendedStyle

Chiamare questa funzione membro per impostare gli stili estesi utilizzati per un controllo esteso casella combinata.

DWORD SetExtendedStyle(
    DWORD dwExMask,
    DWORD dwExStyles);

Parametri

dwExMask
Valore DWORD che indica quali stili in dwExStyles devono essere interessati. Verranno modificati solo gli stili estesi in dwExMask . Tutti gli altri stili verranno mantenuti così come sono. Se questo parametro è zero, verranno interessati tutti gli stili in dwExStyles .

dwExStyles
Valore DWORD contenente gli stili estesi del controllo casella combinata da impostare per il controllo.

Valore restituito

Valore DWORD che contiene gli stili estesi usati in precedenza per il controllo.

Osservazioni:

Per altre informazioni su questi stili, vedi Stili estesi di controllo ComboBoxEx in Windows SDK.

Per creare un controllo esteso casella combinata con stili di windows estesi, usare CreateEx.

CComboBoxEx::SetImageList

Imposta un elenco di immagini per un ComboBoxEx controllo .

CImageList* SetImageList(CImageList* pImageList);

Parametri

pImageList
Puntatore a un CImageList oggetto contenente le immagini da usare con il CComboBoxEx controllo .

Valore restituito

Puntatore a un oggetto CImageList contenente le immagini usate in precedenza dal CComboBoxEx controllo . NULL se in precedenza non è stato impostato alcun elenco di immagini.

Osservazioni:

Questa funzione membro implementa la funzionalità del messaggio CBEM_SETIMAGELIST, come descritto in Windows SDK. Se si modifica l'altezza del controllo di modifica predefinito, chiamare la funzione Win32 SetWindowPos per ridimensionare il controllo dopo aver chiamato SetImageListo non verrà visualizzata correttamente.

L'oggetto CImageList a cui punta il valore restituito è un oggetto temporaneo e viene eliminato definitivamente durante il successivo tempo di elaborazione inattiva.

CComboBoxEx::SetItem

Imposta gli attributi per un elemento in un ComboBoxEx controllo .

BOOL SetItem(const COMBOBOXEXITEM* pCBItem);

Parametri

pCBItem
Puntatore a una struttura COMBOBOXEXITEM che riceverà le informazioni sull'elemento.

Valore restituito

Diverso da zero se l'operazione ha avuto esito positivo; in caso contrario, 0.

Osservazioni:

Questa funzione membro implementa la funzionalità del messaggio CBEM_SETITEM, come descritto in Windows SDK.

CComboBoxEx::SetWindowTheme

Imposta lo stile di visualizzazione del controllo casella combinata estesa.

HRESULT SetWindowTheme(LPCWSTR pszSubAppName);

Parametri

pszSubAppName
Puntatore a una stringa Unicode che contiene lo stile di visualizzazione casella combinata estesa da impostare.

Valore restituito

Il valore restituito non viene utilizzato.

Osservazioni:

Questa funzione membro emula la funzionalità del messaggio di CBEM_SETWINDOWTHEME , come descritto in Windows SDK.

Vedi anche

Esempio MFCIE di MFC
Classe CComboBox
Grafico della gerarchia
Classe CComboBox