Класс CComboBoxEx

Расширяет элемент управления "поле со списком", предоставляя поддержку списков изображений.

Синтаксис

class CComboBoxEx : public CComboBox

Участники

Открытые конструкторы

Имя Описание
CComboBoxEx::CComboBoxEx Формирует объект CComboBoxEx.

Открытые методы

Имя Описание
CComboBoxEx::Create Создает поле со списком и присоединяет его к объекту CComboBoxEx .
CComboBoxEx::CreateEx Создает поле со списком с указанными расширенными стилями Windows и присоединяет его к объекту ComboBoxEx .
CComboBoxEx::D eleteItem Удаляет элемент из ComboBoxEx элемента управления.
CComboBoxEx::GetComboBoxCtrl Извлекает указатель на дочерний элемент управления со списком.
CComboBoxEx::GetEditCtrl Извлекает дескриптор в часть ComboBoxEx элемента управления редактирования элемента управления.
CComboBoxEx::GetExtendedStyle Извлекает расширенные стили, используемые для ComboBoxEx элемента управления.
CComboBoxEx::GetImageList Извлекает указатель на список изображений, назначенный элементу ComboBoxEx управления.
CComboBoxEx::GetItem Извлекает сведения об элементе для данного ComboBoxEx элемента.
CComboBoxEx::HasEditChanged Определяет, изменил ли пользователь содержимое ComboBoxEx элемента управления редактирования, введя его.
CComboBoxEx::InsertItem Вставляет новый элемент в ComboBoxEx элемент управления.
CComboBoxEx::SetExtendedStyle Задает расширенные стили в элементе ComboBoxEx управления.
CComboBoxEx::SetImageList Задает список изображений для ComboBoxEx элемента управления.
CComboBoxEx::SetItem Задает атрибуты элемента в элементе ComboBoxEx управления.
CComboBoxEx::SetWindowTheme Задает визуальный стиль расширенного элемента управления со списком.

Замечания

Используя для CComboBoxEx создания элементов управления полем со списком, вам больше не нужно реализовать собственный код рисования изображений. Вместо этого используйте CComboBoxEx для доступа к изображениям из списка изображений.

Поддержка списка изображений

В стандартном поле со списком владелец поля со списком отвечает за рисование изображения путем создания поля со списком в качестве элемента управления "Рисование владельца". При использовании CComboBoxExвам не нужно задавать стили рисования CBS_OWNERDRAWFIXED и CBS_HASSTRINGS, так как они подразумеваются. В противном случае необходимо написать код для выполнения операций рисования. Элемент CComboBoxEx управления поддерживает до трех изображений на элемент: один для выбранного состояния, один для неизбранного состояния и один для изображения наложения.

Стили

CComboBoxEx поддерживает стили CBS_SIMPLE, CBS_DROPDOWN, CBS_DROPDOWNLIST и WS_CHILD. Все остальные стили, передаваемые при создании окна, игнорируются элементом управления. После создания окна можно указать другие стили полей со списком CComboBoxEx , вызвав функцию-член SetExtendedStyle. С помощью следующих стилей можно:

  • Задайте для поиска строк в списке регистр.

  • Создайте элемент управления со списком, использующий косую черту ('/), обратную косую черту ('\') и символы периода ('.') в качестве разделителей слов. Это позволяет пользователям переходить от слова к слову с помощью сочетания клавиш CTRL+СТРЕЛКА.

  • Задайте элементу управления со списком либо отображать изображение, либо не отображать его. Если изображение не отображается, поле со списком может удалить отступ текста, в котором размещается изображение.

  • Создайте узкий элемент управления со списком, в том числе размер, чтобы он обрезал более широкий прямоугольник со списком, который он содержит.

Эти флаги стиля описаны далее в разделе Using CComboBoxEx.

Атрибуты элемента хранения и обратного вызова

Сведения об элементах, таких как индексы для элементов и изображений, значения отступов и текстовые строки, хранятся в структуре CO структуры Win32 МБ OBOXEXITEM, как описано в пакете SDK для Windows. Структура также содержит элементы, соответствующие флагам обратного вызова.

Подробное концептуальное обсуждение см. в разделе "Использование CComboBoxEx".

Иерархия наследования

CObject

CCmdTarget

CWnd

CComboBox

CComboBoxEx

Требования

Заголовок: afxcmn.h

CComboBoxEx::CComboBoxEx

Вызовите эту функцию-член для создания CComboBoxEx объекта.

CComboBoxEx();

CComboBoxEx::Create

Создает поле со списком и присоединяет его к объекту CComboBoxEx .

virtual BOOL Create(
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

Параметры

dwStyle
Задает сочетание стилей полей со списком, применяемых к поле со списком. Дополнительные сведения о стилях см . в примечаниях ниже.

rect
Ссылка на объект CRect или структуру RECT , которая является позицией и размером поля со списком.

pParentWnd
Указатель на объект CWnd, который является родительским окном поля со списком (обычно ).CDialog Он не должен иметь значение NULL.

Nid
Указывает идентификатор элемента управления поля со списком.

Возвращаемое значение

Ненулевое значение, если объект был создан успешно; в противном случае — 0.

Замечания

CComboBoxEx Создайте объект двумя шагами:

  1. Вызовите CComboBoxEx для создания CComboBoxEx объекта.

  2. Вызовите эту функцию-член, которая создает расширенное поле со списком Windows и присоединяет его к объекту CComboBoxEx .

При вызове CreateMFC инициализирует общие элементы управления.

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

  • CBS_SIMPLE

  • CBS_DROPDOWN

  • CBS_DROPDOWNLIST

  • CBS_AUTOHSCROLL

  • WS_CHILD

Все остальные стили, передаваемые при создании окна, игнорируются. Элемент ComboBoxEx управления также поддерживает расширенные стили, предоставляющие дополнительные возможности. Эти стили описаны в расширенных стилях элемента управления ComboBoxEx в пакете SDK для Windows. Задайте эти стили путем вызова SetExtendedStyle.

Если вы хотите использовать расширенные стили окон с элементом управления, вызовите CreateEx вместо Createэтого.

CComboBoxEx::CreateEx

Вызовите эту функцию, чтобы создать расширенный элемент управления со списком (дочернее окно) и связать его с CComboBoxEx объектом.

virtual BOOL CreateEx(
    DWORD dwExStyle,
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

Параметры

dwExStyle
Задает расширенный стиль создаваемого элемента управления. Список расширенных стилей Windows см. в параметре dwExStyle для CreateWindowEx в пакете SDK для Windows.

dwStyle
Стиль элемента управления со списком. Список стилей см. в статье "Создание ".

rect
Ссылка на структуру RECT , описывающую размер и положение создаваемого окна в координатах клиента pParentWnd.

pParentWnd
Указатель на окно, которое является родительским элементом элемента управления.

Nid
Идентификатор дочернего окна элемента управления.

Возвращаемое значение

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Замечания

Используйте CreateEx вместо Create применения расширенных стилей Windows, указанных предисловием расширенного стиля Windows WS_EX_.

CreateEx создает элемент управления с расширенными стилями Windows, заданными dwExStyle. Необходимо задать расширенные стили, относящиеся к расширенному элементу управления со списком, с помощью SetExtendedStyle. Например, используйте CreateEx для задания таких стилей, как WS_EX_CONTEXTHELP, но используйте SetExtendedStyle для задания таких стилей, как CBES_EX_CASESENSITIVE. Дополнительные сведения см. в разделах Расширенные стили управления ComboBoxEx в пакете SDK для Windows.

CComboBoxEx::D eleteItem

Удаляет элемент из ComboBoxEx элемента управления.

int DeleteItem(int iIndex);

Параметры

iIndex
Отсчитываемый от нуля индекс элемента.

Возвращаемое значение

Количество элементов, оставшихся в элементе управления. Если iIndex недопустим, функция возвращает CB_ERR.

Замечания

Эта функция-член реализует функциональные возможности сообщения CBEM_DELETEITEM, как описано в пакете SDK для Windows. При вызове DeleteItem в родительское окно будет отправлено сообщение WM_NOTIFY с уведомлением CBEN_DELETEITEM.

CComboBoxEx::GetComboBoxCtrl

Вызовите эту функцию-член, чтобы получить указатель на элемент управления со списком в объекте CComboBoxEx .

CComboBox* GetComboBoxCtrl();

Возвращаемое значение

Указатель на объект CComboBox.

Замечания

Элемент CComboBoxEx управления состоит из родительского окна, инкапсулирующего объект CComboBox.

Объект CComboBox , на который указывает возвращаемое значение, является временным объектом и уничтожается во время следующей простоя обработки.

CComboBoxEx::GetEditCtrl

Вызовите эту функцию-член, чтобы получить указатель на элемент управления редактирования для поля со списком.

CEdit* GetEditCtrl();

Возвращаемое значение

Указатель на объект CEdit .

Замечания

Элемент CComboBoxEx управления использует поле редактирования при создании с помощью стиля CBS_DROPDOWN.

Объект CEdit , на который указывает возвращаемое значение, является временным объектом и уничтожается во время следующей простоя обработки.

CComboBoxEx::GetExtendedStyle

Вызовите эту функцию-член, чтобы получить расширенные стили, используемые для CComboBoxEx элемента управления.

DWORD GetExtendedStyle() const;

Возвращаемое значение

Значение DWORD, содержащее расширенные стили, используемые для элемента управления со списком.

Замечания

Дополнительные сведения об этих стилях см. в статье "Расширенные стили управления ComboBoxEx" в пакете SDK для Windows.

CComboBoxEx::GetImageList

Вызовите эту функцию-член, чтобы получить указатель на список изображений, используемый элементом CComboBoxEx управления.

CImageList* GetImageList() const;

Возвращаемое значение

Указатель на объект CImageList . В случае сбоя эта функция-член возвращает значение NULL.

Замечания

Объект CImageList , на который указывает возвращаемое значение, является временным объектом и уничтожается во время следующей простоя обработки.

CComboBoxEx::GetItem

Извлекает сведения об элементе для данного ComboBoxEx элемента.

BOOL GetItem(COMBOBOXEXITEM* pCBItem);

Параметры

pCBItem
Указатель на структуру CO МБ OBOXEXITEM, которая получит сведения об элементе.

Возвращаемое значение

Ненулевое значение, если операция выполнена успешно; в противном случае — 0.

Замечания

Эта функция-член реализует функциональные возможности сообщения CBEM_GETITEM, как описано в пакете SDK для Windows.

CComboBoxEx::HasEditChanged

Определяет, изменил ли пользователь содержимое ComboBoxEx элемента управления редактирования, введя его.

BOOL HasEditChanged();

Возвращаемое значение

Ненулевое значение, если пользователь ввел в поле редактирования элемента управления; в противном случае — 0.

Замечания

Эта функция-член реализует функциональные возможности CBEM_HASEDITCHANGED сообщения, как описано в пакете SDK для Windows.

CComboBoxEx::InsertItem

Вставляет новый элемент в ComboBoxEx элемент управления.

int InsertItem(const COMBOBOXEXITEM* pCBItem);

Параметры

pCBItem
Указатель на структуру CO МБ OBOXEXITEM, которая получит сведения об элементе. Эта структура содержит значения флага обратного вызова для элемента.

Возвращаемое значение

Индекс, по которому был вставлен новый элемент в случае успешного выполнения; в противном случае - 1.

Замечания

При вызове InsertItemв родительское окно будет отправлено сообщение WM_NOTIFY с уведомлением CBEN_INSERTITEM.

CComboBoxEx::SetExtendedStyle

Вызовите эту функцию-член, чтобы задать расширенные стили, используемые для расширенного элемента управления со списком.

DWORD SetExtendedStyle(
    DWORD dwExMask,
    DWORD dwExStyles);

Параметры

dwExMask
Значение DWORD, указывающее, какие стили в dwExStyles должны быть затронуты. Будут изменены только расширенные стили в dwExMask . Все остальные стили будут поддерживаться как есть. Если этот параметр равен нулю, все стили в dwExStyles будут затронуты.

dwExStyles
Значение DWORD, содержащее расширенные стили элемента управления полем со списком для задания элемента управления.

Возвращаемое значение

Значение DWORD, содержащее расширенные стили, которые ранее использовались для элемента управления.

Замечания

Дополнительные сведения об этих стилях см. в статье "Расширенные стили управления ComboBoxEx" в пакете SDK для Windows.

Чтобы создать расширенный элемент управления со списком с расширенными стилями окон, используйте CreateEx.

CComboBoxEx::SetImageList

Задает список изображений для ComboBoxEx элемента управления.

CImageList* SetImageList(CImageList* pImageList);

Параметры

pImageList
Указатель на CImageList объект, содержащий изображения для использования с элементом CComboBoxEx управления.

Возвращаемое значение

Указатель на объект CImageList , содержащий изображения, ранее используемые элементом CComboBoxEx управления. ЗНАЧЕНИЕ NULL, если ранее не задан список изображений.

Замечания

Эта функция-член реализует функциональные возможности сообщения CBEM_SETIMAGELIST, как описано в пакете SDK для Windows. Если изменить высоту элемента управления редактированием по умолчанию, вызовите функцию Win32 SetWindowPos , чтобы изменить размер элемента управления после вызова SetImageListили не отображаться должным образом.

Объект CImageList , на который указывает возвращаемое значение, является временным объектом и уничтожается во время следующей простоя обработки.

CComboBoxEx::SetItem

Задает атрибуты элемента в элементе ComboBoxEx управления.

BOOL SetItem(const COMBOBOXEXITEM* pCBItem);

Параметры

pCBItem
Указатель на структуру CO МБ OBOXEXITEM, которая получит сведения об элементе.

Возвращаемое значение

Ненулевое значение, если операция выполнена успешно; в противном случае — 0.

Замечания

Эта функция-член реализует функциональные возможности сообщения CBEM_SETITEM, как описано в пакете SDK для Windows.

CComboBoxEx::SetWindowTheme

Задает визуальный стиль расширенного элемента управления со списком.

HRESULT SetWindowTheme(LPCWSTR pszSubAppName);

Параметры

pszSubAppName
Указатель на строку Юникода, содержащую расширенный визуальный стиль поля со списком.

Возвращаемое значение

Возвращаемое значение не используется.

Замечания

Эта функция-член эмулирует функциональные возможности сообщения CBEM_SETWINDOWTHEME , как описано в пакете SDK для Windows.

См. также

Пример MFC MFCIE
Класс CComboBox
Диаграмма иерархии
Класс CComboBox