Condividi tramite


Impostazione delle immagini per un singolo elemento

I diversi tipi di immagini utilizzate dall'elemento casella combinata estesa sono determinati dai valori in iImage, iSelectedImage e membri di iOverlay della struttura di COMBOBOXEXITEM. Ogni valore è l'indice di un'immagine nell'elenco immagini collegato del controllo. Per impostazione predefinita, questi membri vengono impostate su 0, e il controllo non è visualizzata un'immagine per l'elemento. Se si desidera utilizzare immagini per un elemento specifico, è possibile modificare la struttura, uno quando si inserisce l'elemento casella combinata o modifica un elemento della casella combinata esistente.

Impostare l'immagine per un nuovo elemento

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

Nell'esempio seguente viene inserito un nuovo elemento della 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 per un elemento esistente

Se si modifica un elemento esistente, è necessario utilizzare il membro di maschera 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 maschera i valori che si desidera modificare.

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

  3. Modificare maschera, iImage e i membri di iSelectedImage struttura appena restituita, utilizzando i valori appropriati.

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

Nell'esempio seguente viene illustrata questa procedura scambiando le immagini selezionate e unchecked 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

Utilizzo di CComboBoxEx

Concetti

Controlli (MFC)