Класс 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::DrawItemCCheckListBox::MeasureItem функции.

Вы можете создать поле проверка list из шаблона диалогового окна или непосредственно в коде.

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

CObject

CCmdTarget

CWnd

CListBox

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_HASSTRINGSLBS_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_NCCALCSIZEWM_NCCREATEWM_CREATEсообщения и WM_GETMINMAXINFO сообщения в элемент управления проверка list-box.

Эти сообщения обрабатываются по умолчанию функциями OnNcCreate, OnCreateOnNcCalcSizeи 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 указатель на структуру, содержащую сведения о типе документа, необходимом.

Замечания

itemStateDRAWITEMSTRUCT Элементы 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_AUTO3STATEBS_3STATE. Дополнительные сведения см. в разделе "Стили кнопок".

CCheckListBox::SetCheckStyle

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

void SetCheckStyle(UINT nStyle);

Параметры

nStyle
Определяет стиль полей проверка в поле проверка списка.

Замечания

Допустимые стили:

  • BS_CHECKBOX

  • BS_AUTOCHECKBOX

  • BS_AUTO3STATE

  • BS_3STATE

Дополнительные сведения об этих стилях см. в разделе "Стили кнопок".

См. также

Пример MFC TSTCON
CListBox Класса
Диаграмма иерархии