Класс CCheckListBox
Предоставляет функции поля со списком Windows.
Синтаксис
class CCheckListBox : public CListBox
Участники
Открытые конструкторы
Имя | Описание |
---|---|
CCheckListBox::CCheckListBox |
Формирует объект CCheckListBox . |
Открытые методы
Имя | Описание |
---|---|
CCheckListBox::Create |
Создает поле списка проверка Windows и присоединяет его к объектуCCheckListBox . |
CCheckListBox::DrawItem |
Вызывается платформой при изменении визуального аспекта поля списка "Рисование владельца". |
CCheckListBox::Enable |
Включает или отключает элемент поля проверка. |
CCheckListBox::GetCheck |
Возвращает состояние поля проверка элемента. |
CCheckListBox::GetCheckStyle |
Возвращает стиль полей проверка элемента управления. |
CCheckListBox::IsEnabled |
Определяет, включен ли элемент. |
CCheckListBox::MeasureItem |
Вызывается платформой при создании поля списка с стилем рисования владельца. |
CCheckListBox::OnGetCheckPosition |
Вызывается платформой для получения позиции поля проверка элемента. |
CCheckListBox::SetCheck |
Задает состояние поля проверка элемента. |
CCheckListBox::SetCheckStyle |
Задает стиль полей проверка элемента управления. |
Замечания
В поле "проверка список" отображается список элементов, таких как имена файлов. Каждый элемент в списке содержит поле проверка рядом с ним, которое пользователь может проверка или очистить.
CCheckListBox
используется только для элементов управления, нарисованных владельцем, так как список содержит больше текстовых строк. В самом простом поле списка проверка содержит текстовые строки и проверка поля, но не требуется вообще текста. Например, у вас может быть список небольших растровых изображений с полем проверка рядом с каждым элементом.
Чтобы создать собственный поле списка проверка, необходимо наследовать собственный класс.CCheckListBox
Чтобы получить собственный класс, напишите конструктор для производного класса, а затем вызовите Create
.
Если вы хотите обрабатывать сообщения уведомлений Windows, отправляемые полем списка его родительскому элементу (как правило, классу, производным от CDialog
), добавьте запись карты сообщений и функцию-обработчик сообщения в родительский класс для каждого сообщения.
Каждая запись карты сообщений принимает следующую форму:
ON_Notification(id
, memberFxn
)
где id
указывает идентификатор дочернего окна элемента управления, отправляющего уведомление, и memberFxn
является именем родительской функции-члена, записанной для обработки уведомления.
Прототип функции родительского объекта выглядит следующим образом:
afx_msg void memberFxn();
Существует только одна запись карты сообщений, относящаяся специально CCheckListBox
к (но см. также записи карты сообщений для CListBox
):
ON_CLBN_CHKCHANGE
Пользователь изменил состояние проверка box элемента.
Если поле проверка list является полем списка проверка по умолчанию (список строк с размером по умолчанию проверка boxes слева от каждого), можно использовать по умолчанию CCheckListBox::DrawItem
для рисования поля проверка списка. В противном случае необходимо переопределить функцию CListBox::CompareItem
и CCheckListBox::DrawItem
CCheckListBox::MeasureItem
функции.
Вы можете создать поле проверка list из шаблона диалогового окна или непосредственно в коде.
Иерархия наследования
CCheckListBox
Требования
Заголовок.afxwin.h
CCheckListBox::CCheckListBox
Формирует объект CCheckListBox
.
CCheckListBox();
Замечания
Вы создаете CCheckListBox
объект на двух шагах. Сначала определите класс, производный отCCheckListBox
, а затем вызовCreate
, который инициализирует поле списка проверка Windows и присоединяет его к объектуCCheckListBox
.
Пример
CCheckListBox myCheckListBox;
myCheckListBox.Create(LBS_HASSTRINGS | LBS_OWNERDRAWFIXED,
CRect(10, 10, 100, 100), this, IDC_MYCHECKLISTBOX);
CCheckListBox::Create
Создает поле списка проверка Windows и присоединяет его к объектуCCheckListBox
.
virtual BOOL Create(
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
Параметры
dwStyle
Задает стиль поля проверка list. Стиль должен быть и либо LBS_HASSTRINGS
LBS_OWNERDRAWFIXED
(все элементы в списке имеют одинаковую высоту) или LBS_OWNERDRAWVARIABLE
(элементы в списке имеют разные высоты). Этот стиль можно сочетать с другими стилями списка, кроме LBS_USETABSTOPS
.
rect
Задает размер и позицию проверка list-box. Может быть CRect
объектом или структурой RECT
.
pParentWnd
Указывает родительское окно поля проверка list (обычно CDialog
объект). Он не должен иметь значение NULL.
nID
Указывает идентификатор элемента управления проверка list.
Возвращаемое значение
Имеет ненулевое значение в случае успешного выполнения, иначе — 0.
Замечания
Вы создаете CCheckListBox
объект на двух шагах. Сначала определите класс, производный от CcheckListBox
вызоваCreate
, который инициализирует поле списка проверка Windows и присоединяет его к немуCCheckListBox
. См CCheckListBox::CCheckListBox
. пример.
При Create
выполнении Windows отправляет WM_NCCALCSIZE
WM_NCCREATE
WM_CREATE
сообщения и WM_GETMINMAXINFO
сообщения в элемент управления проверка list-box.
Эти сообщения обрабатываются по умолчанию функциями OnNcCreate
, OnCreate
OnNcCalcSize
и OnGetMinMaxInfo
членами в базовом CWnd
классе. Чтобы расширить обработку сообщений по умолчанию, добавьте карту сообщений в производный класс и переопределите предыдущие функции члена обработчика сообщений. Переопределите OnCreate
, например, чтобы выполнить необходимую инициализацию для нового класса.
Примените следующие стили окон к элементу управления проверка list-box:
WS_CHILD
ВсегдаWS_VISIBLE
ОбычноWS_DISABLED
РедкоWS_VSCROLL
Добавление вертикальной полосы прокруткиWS_HSCROLL
Добавление горизонтальной полосы прокруткиWS_GROUP
Группирование элементов управленияWS_TABSTOP
Разрешение табуляции для этого элемента управления
CCheckListBox::DrawItem
Вызывается платформой, когда визуальный аспект нарисованного владельцем поля проверка списка изменяется.
virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
Параметры
lpDrawItemStruct
Длинный DRAWITEMSTRUCT
указатель на структуру, содержащую сведения о типе документа, необходимом.
Замечания
itemState
DRAWITEMSTRUCT
Элементы itemAction
структуры определяют выполняемую операцию рисования.
По умолчанию эта функция рисует список проверка box по умолчанию, состоящий из списка строк с размером по умолчанию проверка box слева. Размер списка проверка box является одним из указанных в Create
.
Переопределите эту функцию-член, чтобы реализовать рисование полей проверка списка владельцев, которые не являются полями по умолчанию, например поля списков проверка со списками, которые не являются строками, с элементами переменной высоты или с проверка boxes, которые не указаны слева. Приложение должно восстановить все объекты интерфейса графического устройства (GDI), выбранные для контекста отображения, предоставленного lpDrawItemStruct
перед завершением этой функции-члена.
Если элементы поля проверка не совпадают с высотой, стиль поля проверка списков (указанный вCreate
) должен бытьLBS_OWNERVARIABLE
, и необходимо переопределить функциюMeasureItem
.
CCheckListBox::Enable
Вызовите эту функцию, чтобы включить или отключить элемент поля проверка списка.
void Enable(
int nIndex,
BOOL bEnabled = TRUE);
Параметры
nIndex
Индекс элемента поля проверка, который необходимо включить.
bEnabled
Указывает, включен или отключен элемент.
CCheckListBox::GetCheck
Извлекает состояние указанного поля проверка.
int GetCheck(int nIndex);
Параметры
nIndex
Отсчитываемый от нуля индекс поля проверка, который содержится в поле списка.
Возвращаемое значение
Состояние указанного поля проверка. В следующей таблице перечислены возможные значения.
значение | Description |
---|---|
BST_CHECKED |
Поле проверка проверка. |
BST_UNCHECKED |
Поле проверка не проверка. |
BST_INDETERMINATE |
Состояние поля проверка не определено. |
CCheckListBox::GetCheckStyle
Вызовите эту функцию, чтобы получить стиль поля проверка списка.
UINT GetCheckStyle();
Возвращаемое значение
Стиль полей проверка элемента управления.
Замечания
Дополнительные сведения о возможных стилях см. в разделе SetCheckStyle
.
CCheckListBox::IsEnabled
Вызовите эту функцию, чтобы определить, включен ли элемент.
BOOL IsEnabled(int nIndex);
Параметры
nIndex
Индекс элемента.
Возвращаемое значение
Ненулевое значение, если элемент включен; в противном случае — 0.
CCheckListBox::MeasureItem
Вызывается платформой при создании поля списка проверка с недефекционным стилем.
virtual void MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct);
Параметры
lpMeasureItemStruct
Длинный указатель на структуру MEASUREITEMSTRUCT
.
Замечания
По умолчанию эта функция-член ничего не делает. Переопределите эту функцию-член и заполните структуруMEASUREITEMSTRUCT
, чтобы сообщить Windows о измерениях элементов проверка list-box. Если поле проверка list создается с LBS_OWNERDRAWVARIABLE
помощью стиля, платформа вызывает эту функцию-член для каждого элемента в списке. В противном случае этот элемент вызывается только один раз.
CCheckListBox::OnGetCheckPosition
Платформа вызывает эту функцию, чтобы получить положение и размер поля проверка в элементе.
virtual CRect OnGetCheckPosition(
CRect rectItem,
CRect rectCheckBox);
Параметры
rectItem
Позиция и размер элемента списка.
rectCheckBox
Положение и размер элемента по умолчанию проверка поля.
Возвращаемое значение
Позиция и размер поля проверка элемента.
Замечания
Реализация по умолчанию возвращает только позицию по умолчанию и размер поля проверка (rectCheckBox
). По умолчанию поле проверка выравнивается в левом верхнем углу элемента и является стандартным размером поля проверка. Могут возникнуть случаи, когда требуется проверка коробки справа, или требуется большее или меньшее поле проверка. В этих случаях переопределите OnGetCheckPosition
изменение положения и размера поля проверка в элементе.
CCheckListBox::SetCheck
Задает состояние указанного поля проверка.
void SetCheck(
int nIndex,
int nCheck);
Параметры
nIndex
Отсчитываемый от нуля индекс поля проверка, который содержится в поле списка.
nCheck
Состояние кнопки для указанного поля проверка. Сведения о возможных значениях см. в разделе "Примечания".
Замечания
В следующей nCheck
таблице перечислены возможные значения параметра.
значение | Description |
---|---|
BST_CHECKED |
Выберите указанное поле проверка. |
BST_UNCHECKED |
Снимите указанное поле проверка. |
BST_INDETERMINATE |
Задайте для заданного состояния поля проверка неопределенное состояние. Это состояние доступно только в том случае, если стиль поля проверка или BS_AUTO3STATE BS_3STATE . Дополнительные сведения см. в разделе "Стили кнопок". |
CCheckListBox::SetCheckStyle
Вызовите эту функцию, чтобы задать стиль полей проверка в поле проверка списка.
void SetCheckStyle(UINT nStyle);
Параметры
nStyle
Определяет стиль полей проверка в поле проверка списка.
Замечания
Допустимые стили:
BS_CHECKBOX
BS_AUTOCHECKBOX
BS_AUTO3STATE
BS_3STATE
Дополнительные сведения об этих стилях см. в разделе "Стили кнопок".
См. также
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по