Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Класс
Замечание
Библиотека классов Microsoft Foundation (MFC) продолжает поддерживаться. Однако мы больше не добавляем функции или обновляем документацию.
Предоставляет функции поля со списком 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::DrawItemCCheckListBox::MeasureItem функции.
Флажок можно создать из шаблона диалогового окна или непосредственно в коде.
Иерархия наследования
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_HASSTRINGSLBS_OWNERDRAWFIXED (все элементы в списке имеют одинаковую высоту) или LBS_OWNERDRAWVARIABLE (элементы в списке имеют разные высоты). Этот стиль можно сочетать с другими стилями списка, кроме LBS_USETABSTOPS.
rect
Задает размер и позицию флажка. Может быть CRect объектом или структурой RECT .
pParentWnd
Указывает родительское окно флажка (обычно CDialog объект). Он не должен иметь значение NULL.
nID
Указывает идентификатор элемента управления флажка.
Возвращаемое значение
Имеет ненулевое значение в случае успешного выполнения, иначе — 0.
Замечания
Вы создаете CCheckListBox объект на двух шагах. Сначала определите класс, производный от CcheckListBox этого, а затем вызовCreate, который инициализирует флажок Windows и присоединяет его к .CCheckListBox См CCheckListBox::CCheckListBox . пример.
При Create выполнении Windows отправляет элементы WM_NCCREATEWM_CREATEWM_NCCALCSIZEуправления контрольным списком и сообщения , а также 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 указатель на структуру, содержащую сведения о типе документа, необходимом.
Замечания
itemAction
itemState Элементы DRAWITEMSTRUCT структуры определяют выполняемую операцию рисования.
По умолчанию эта функция рисует список флажков по умолчанию, состоящий из списка строк с флажком по умолчанию слева. Размер списка флажков — это один из указанных в Create.
Переопределите эту функцию-член, чтобы реализовать рисование контрольных списков владельца, которые не являются стандартными, например флажками со списками, не являющимися строками, с элементами переменной высоты или флажками, которые не указаны слева. Приложение должно восстановить все объекты интерфейса графического устройства (GDI), выбранные для контекста отображения, предоставленного lpDrawItemStruct перед завершением этой функции-члена.
Если элементы флажка не все одинаковые высоты, должен быть Createстиль флажка (указанный в LBS_OWNERVARIABLE) и переопределить функцию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_AUTO3STATEустановлен стиль BS_3STATE флажка. Дополнительные сведения см. в разделе "Стили кнопок". |
CCheckListBox::SetCheckStyle
Вызовите эту функцию, чтобы задать стиль флажков в флажке.
void SetCheckStyle(UINT nStyle);
Параметры
nStyle
Определяет стиль флажков в флажке.
Замечания
Допустимые стили:
BS_CHECKBOXBS_AUTOCHECKBOXBS_AUTO3STATEBS_3STATE
Дополнительные сведения об этих стилях см. в разделе "Стили кнопок".