Share via


Impostare le immagini per un singolo elemento

I diversi tipi di immagini utilizzate dall'elemento casella combinata estesa sono determinati dai valori in iImage, iSelectedImagee membri di iOverlay della struttura di COMBOBOXEXITEM .Ogni valore è l'indice di un'immagine nell'elenco immagini associato al controllo.Per impostazione predefinita, questi membri vengono impostati su 0, in modo che il controllo su non visualizza immagine per l'elemento.Se si desidera utilizzare immagini per un elemento specifico, è possibile modificare la struttura, spostandosi quando si inserisce l'elemento casella combinata o modifica un elemento casella combinata esistente.

Impostare l'immagine per un nuovo elemento

Se si inserisce un nuovo elemento, inizializzare iImage, iSelectedImagee i membri della struttura di iOverlay con i valori corretti 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 gli indici per i tre stati di immagine:

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);

Impostare l'immagine da un elemento esistente

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

Per modificare un elemento esistente per utilizzare immagini

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

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

  3. Modificare mask, iImagee i membri di iSelectedImage della struttura appena restituita, utilizzando i valori appropriati.

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

Nell'esempio seguente viene illustrata questa routine scambiando le immagini selezionate e deselezionato del terzo elemento 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));

Vedere anche

Riferimenti

Utilizzando CComboBoxEx

Concetti

Controlli (MFC)