Condividi tramite


Impostazione delle immagini per un singolo elemento

I diversi tipi di immagini usati dall'elemento casella combinata estesa sono determinati dai valori nei membri iImage, iSelectedImage e iOverlay della struttura COMBOBOXEXITEM . Ogni valore è l'indice di un'immagine nell'elenco di immagini associato del controllo. Per impostazione predefinita, questi membri sono impostati su 0 e il controllo non visualizza alcuna immagine per l'elemento. Se si desidera utilizzare immagini per un elemento specifico, è possibile modificare la struttura di conseguenza, quando si inserisce l'elemento della casella combinata o modificando un elemento casella combinata esistente.

Impostazione dell'immagine per un nuovo elemento

Se si inserisce un nuovo elemento, inizializzare i membri della struttura iImage, iSelectedImage e iOverlay con i valori appropriati e quindi inserire l'elemento con una chiamata a CComboBoxEx::InsertItem.

Nell'esempio seguente viene inserito un nuovo elemento casella combinata estesa (cbi) nel controllo casella combinata estesa (m_comboEx), fornendo indici per tutti e tre gli stati dell'immagine:

COMBOBOXEXITEM     cbi = { 0 };
COMBOBOXEXITEM     cbi = { 0 };
CString            str;
int                nItem;

cbi.mask = CBEIF_IMAGE | CBEIF_INDENT | CBEIF_OVERLAY |
CBEIF_SELECTEDIMAGE | CBEIF_TEXT;

cbi.iItem = 0;
cbi.pszText = _T("Item 0");
cbi.iImage = 0;
cbi.iSelectedImage = 1;
cbi.iOverlay = 2;
cbi.iIndent = (0 & 0x03);   //Set indentation according
                     //to item position

nItem = m_ComboBoxEx.InsertItem(&cbi);
ASSERT(nItem == 0);

Impostazione dell'immagine per un elemento esistente

Se si modifica un elemento esistente, è necessario utilizzare il membro mask di una struttura COMBOBOXEXITEM .

Per modificare un elemento esistente per l'uso delle immagini

  1. Dichiarare una struttura COMBOBOXEXITEM e impostare il membro dati mask sui valori che si desidera modificare.

  2. Usando questa struttura, effettuare una chiamata a CComboBoxEx::GetItem.

  3. Modificare i membri mask, iImage e iSelectedImage della struttura appena restituita usando i valori appropriati.

  4. Effettuare una chiamata a CComboBoxEx::SetItem passando la struttura modificata.

Nell'esempio seguente viene illustrata questa procedura scambiando le immagini selezionate e non selezionate del terzo elemento della casella combinata estesa:

COMBOBOXEXITEM cbi = {0};
int iImageTemp;

cbi.mask = CBEIF_IMAGE | CBEIF_SELECTEDIMAGE;
cbi.iItem = 0;
m_ComboBoxEx.GetItem(&cbi);

iImageTemp = cbi.iImage;
cbi.iImage = cbi.iSelectedImage;
cbi.iSelectedImage = iImageTemp;
VERIFY(m_ComboBoxEx.SetItem(&cbi));

Vedi anche

Uso di CComboBoxEx
Controlli