Класс 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.
Атрибуты элемента хранения и обратного вызова
Сведения об элементах, таких как индексы элементов и изображений, значения отступов и текстовые строки, хранятся в структуре COMBOBOXEXITEM структуры Win32, как описано в пакете SDK для Windows. Структура также содержит элементы, соответствующие флагам обратного вызова.
Подробное концептуальное обсуждение см. в разделе "Использование CComboBoxEx".
Иерархия наследования
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
Создайте объект двумя шагами:
Вызовите CComboBoxEx для создания
CComboBoxEx
объекта.Вызовите эту функцию-член, которая создает расширенное поле со списком Windows и присоединяет его к объекту
CComboBoxEx
.
При вызове Create
MFC инициализирует общие элементы управления.
При создании поля со списком можно указать любой или все следующие стили со списком:
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
Указатель на структуру COMBOBOXEXITEM , которая получит сведения об элементе.
Возвращаемое значение
Ненулевое значение, если операция выполнена успешно; в противном случае — 0.
Замечания
Эта функция-член реализует функциональные возможности сообщения CBEM_GETITEM, как описано в пакете SDK для Windows.
CComboBoxEx::HasEditChanged
Определяет, изменил ли пользователь содержимое ComboBoxEx
элемента управления редактирования, введя его.
BOOL HasEditChanged();
Возвращаемое значение
Ненулевое значение, если пользователь ввел в поле редактирования элемента управления; в противном случае — 0.
Замечания
Эта функция-член реализует функциональные возможности CBEM_HASEDITCHANGED сообщения, как описано в пакете SDK для Windows.
CComboBoxEx::InsertItem
Вставляет новый элемент в ComboBoxEx
элемент управления.
int InsertItem(const COMBOBOXEXITEM* pCBItem);
Параметры
pCBItem
Указатель на структуру COMBOBOXEXITEM , которая получит сведения об элементе. Эта структура содержит значения флага обратного вызова для элемента.
Возвращаемое значение
Индекс, по которому был вставлен новый элемент в случае успешного выполнения; в противном случае - 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
Указатель на структуру COMBOBOXEXITEM , которая получит сведения об элементе.
Возвращаемое значение
Ненулевое значение, если операция выполнена успешно; в противном случае — 0.
Замечания
Эта функция-член реализует функциональные возможности сообщения CBEM_SETITEM, как описано в пакете SDK для Windows.
CComboBoxEx::SetWindowTheme
Задает визуальный стиль расширенного элемента управления со списком.
HRESULT SetWindowTheme(LPCWSTR pszSubAppName);
Параметры
pszSubAppName
Указатель на строку Юникода, содержащую расширенный визуальный стиль поля со списком.
Возвращаемое значение
Возвращаемое значение не используется.
Замечания
Эта функция-член эмулирует функциональные возможности сообщения CBEM_SETWINDOWTHEME , как описано в пакете SDK для Windows.
См. также
Пример MFC MFCIE
Класс CComboBox
Диаграмма иерархии
Класс CComboBox