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


Класс 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 Пользователь изменил состояние флажка элемента.

Если флажок по умолчанию является флажком по умолчанию (список строк с флажками по умолчанию слева от каждого), можно использовать по умолчанию CCheckListBox::DrawItem для рисования флажка. В противном случае необходимо переопределить функцию CListBox::CompareItem и CCheckListBox::DrawItem CCheckListBox::MeasureItem функции.

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

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

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
Задает стиль флажка. Стиль должен быть и либо LBS_HASSTRINGS LBS_OWNERDRAWFIXED (все элементы в списке имеют одинаковую высоту) или LBS_OWNERDRAWVARIABLE (элементы в списке имеют разные высоты). Этот стиль можно сочетать с другими стилями списка, кроме LBS_USETABSTOPS.

rect
Задает размер и позицию флажка. Может быть CRect объектом или структурой RECT .

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

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

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

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

Замечания

Вы создаете CCheckListBox объект на двух шагах. Сначала определите класс, производный от CcheckListBox этого, а затем вызовCreate, который инициализирует флажок Windows и присоединяет его к .CCheckListBox См CCheckListBox::CCheckListBox . пример.

При Create выполнении Windows отправляет элементы WM_NCCALCSIZEWM_NCCREATEWM_CREATEуправления контрольным списком и сообщения , а также WM_GETMINMAXINFO сообщения.

Эти сообщения обрабатываются по умолчанию функциями OnNcCreate, OnCreateOnNcCalcSizeи OnGetMinMaxInfo членами в базовом CWnd классе. Чтобы расширить обработку сообщений по умолчанию, добавьте карту сообщений в производный класс и переопределите предыдущие функции члена обработчика сообщений. Переопределите OnCreate, например, чтобы выполнить необходимую инициализацию для нового класса.

Примените следующие стили окон к элементу управления контрольного списка:

  • 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 структуры определяют выполняемую операцию рисования.

По умолчанию эта функция рисует список флажков по умолчанию, состоящий из списка строк с флажком по умолчанию слева. Размер списка флажков — это один из указанных в Create.

Переопределите эту функцию-член, чтобы реализовать рисование контрольных списков владельца, которые не являются стандартными, например флажками со списками, не являющимися строками, с элементами переменной высоты или флажками, которые не указаны слева. Приложение должно восстановить все объекты интерфейса графического устройства (GDI), выбранные для контекста отображения, предоставленного lpDrawItemStruct перед завершением этой функции-члена.

Если элементы флажка не все одинаковые высоты, должен быть LBS_OWNERVARIABLEстиль флажка (указанный в Create) и переопределить функциюMeasureItem.

CCheckListBox::Enable

Вызовите эту функцию, чтобы включить или отключить элемент флажка.

void Enable(
    int nIndex,
    BOOL bEnabled = TRUE);

Параметры

nIndex
Индекс элемента флажка для включения.

bEnabled
Указывает, включен или отключен элемент.

CCheckListBox::GetCheck

Извлекает состояние указанного флажка.

int GetCheck(int nIndex);

Параметры

nIndex
Отсчитываемый от нуля индекс флажка, который содержится в списке.

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

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

значение Описание
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 о измерениях элементов контрольного списка. Если флажок создан с 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 таблице перечислены возможные значения параметра.

значение Описание
BST_CHECKED Установите указанный флажок.
BST_UNCHECKED Снимите указанный флажок.
BST_INDETERMINATE Задайте для заданного состояния флажка неопределенное значение.

Это состояние доступно только в том случае, если установлен или BS_3STATEустановлен стиль BS_AUTO3STATE флажка. Дополнительные сведения см. в разделе "Стили кнопок".

CCheckListBox::SetCheckStyle

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

void SetCheckStyle(UINT nStyle);

Параметры

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

Замечания

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

  • BS_CHECKBOX

  • BS_AUTOCHECKBOX

  • BS_AUTO3STATE

  • BS_3STATE

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

См. также

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