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à
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:
Chiamare CComboBoxEx per costruire un
CComboBoxEx
oggetto .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 SetImageList
o 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