Поделиться через


Установка изображений для отдельного элемента

Различные типы изображений, используемых дополнительным элементом поля со списком определяются значениями в iImage, iSelectedImage и iOverlay членов структуры COMBOBOXEXITEM. Каждое значение индекса образа в связанном списке изображений элемента управления. По умолчанию эти члены задано значение 0, что элемент управления не отображаться. изображение элемента. Если требуется использовать отображает для конкретного элемента, можно изменять структуру соответствующим образом при вставке элемента поля со списком или путем изменения существующего элемента поля со списком.

Параметр изображение для нового элемента

При вставке новый элемент, необходимо инициализировать iImage, iSelectedImage и iOverlay элементы структуры с правильными значениями и затем вставьте элемент с вызовом метода CComboBoxEx::InsertItem.

Следующий пример вставляет новый расширенный элемент поля со списком (cbi) в расширенных элементов управления " Поле со списком (m_comboEx), указав индексы для всех 3 состояний образа.

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

Параметр изображение для существующего элемента

Если изменить существующий элемент, необходимо работать с членом mask структуры COMBOBOXEXITEM.

Изменить существующий элемент для использования изображений

  1. Объявите структуру COMBOBOXEXITEM и задайте элемент данных mask значения необходимо настроить в изменения.

  2. С помощью этой структуры, вызывать в CComboBoxEx::GetItem.

  3. Измените mask, iImage и члены iSelectedImage вновь возвращенной структуры, используя соответствующие значения.

  4. Вызывать в CComboBoxEx::SetItem, передав измененную структуру.

Следующий пример демонстрирует эту процедуру с обменивать выбранные и не выбран образы удлиненного третьего элемента поля со списком.

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

См. также

Ссылки

Использование CComboBoxEx

Основные понятия

Элементы управления (MFC)