Класс CMFCListCtrl
Класс CMFCListCtrl
расширяет функциональные возможности класса, поддерживая расширенные функцииCListCtrl
CMFCHeaderCtrl
управления заголовками класса.
Синтаксис
class CMFCListCtrl : public CListCtrl
Участники
Открытые методы
Имя | Описание |
---|---|
CMFCListCtrl::EnableMarkSortedColumn |
Позволяет пометить отсортированный столбец другим цветом фона. |
CMFCListCtrl::EnableMultipleSort |
Включает режим сортировки нескольких типов. |
CMFCListCtrl::GetHeaderCtrl |
Возвращает ссылку на элемент управления подчеркнутого заголовка. |
CMFCListCtrl::IsMultipleSort |
Проверяет, находится ли элемент управления списком в нескольких режимах сортировки. |
CMFCListCtrl::OnCompareItems |
Вызывается платформой, когда она должна сравнить два элемента управления списком. |
CMFCListCtrl::OnGetCellBkColor |
Вызывается платформой, когда она должна определить цвет фона отдельной ячейки. |
CMFCListCtrl::OnGetCellFont |
Вызывается платформой, когда он должен получить шрифт для рисуемой ячейки. |
CMFCListCtrl::OnGetCellTextColor |
Вызывается платформой, когда она должна определить цвет текста отдельной ячейки. |
CMFCListCtrl::RemoveSortColumn |
Удаляет столбец сортировки из списка отсортированных столбцов. |
CMFCListCtrl::SetSortColumn |
Задает текущий отсортированный столбец и порядок сортировки. |
CMFCListCtrl::Sort |
Сортирует элемент управления списком. |
Замечания
CMFCListCtrl
предлагает два улучшения CListCtrl
класса . Во-первых, он указывает, что сортировка столбцов доступна, автоматически нарисовав стрелку сортировки в заголовке. Во-вторых, она поддерживает сортировку данных по нескольким столбцам одновременно.
Пример
В приведенном ниже примере демонстрируется использование различных методов класса CMFCListCtrl
. В примере показано, как создать элемент управления списком, вставить столбцы, вставить элементы, задать текст элемента и задать шрифт элемента управления списком. Этот фрагмент кода является частью примера демонстрации Visual Studio.
CMFCListCtrl m_wndWatch;
// DWORD dwStyle
// CRect rectDummy
m_wndWatch.Create(dwStyle, rectDummy, this, ID_LIST_1);
m_wndWatch.SendMessage(LVM_SETEXTENDEDLISTVIEWSTYLE, 0, LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
m_wndWatch.InsertColumn(0, _T("Variable"), LVCFMT_LEFT, 100);
m_wndWatch.InsertColumn(1, _T("Value"), LVCFMT_LEFT, 100);
m_wndWatch.InsertItem(0, _T("m_nCount"));
m_wndWatch.SetItemText(0, 1, _T("100"));
m_wndWatch.SetFont(&m_Font);
Иерархия наследования
Требования
Заголовок: afxlistctrl.h
CMFCListCtrl::EnableMarkSortedColumn
Помечает отсортированные столбцы с другим цветом фона.
void EnableMarkSortedColumn(
BOOL bMark = TRUE,
BOOL bRedraw = TRUE);
Параметры
bMark
[in] Логический параметр, определяющий, следует ли включить другой цвет фона.
bRedraw
[in] Логический параметр, определяющий, следует ли немедленно перерисовывать элемент управления.
Замечания
EnableMarkSortedColumn
использует метод CDrawingManager::PixelAlpha
для вычисления цвета, используемого для отсортированных столбцов. Выбранный цвет основан на регулярном цвете фона.
CMFCListCtrl::EnableMultipleSort
Включает сортировку строк данных в элементе управления списком по нескольким столбцам.
void EnableMultipleSort(BOOL bEnable = TRUE);
Параметры
bEnable
[in] Логическое значение, указывающее, следует ли включить режим сортировки нескольких столбцов.
Замечания
При включении сортировки на основе нескольких столбцов столбцы имеют иерархию. Строки данных сначала будут отсортированы по основному столбцу. Затем все эквивалентные значения сортируются по каждому последующему столбцу на основе приоритета.
CMFCListCtrl::GetHeaderCtrl
Возвращает ссылку на элемент управления заголовком.
virtual CMFCHeaderCtrl& GetHeaderCtrl();
Возвращаемое значение
Ссылка на базовый CMFCHeaderCtrl
объект.
Замечания
Элемент управления заголовком для элемента управления списком — это окно, содержащее заголовки столбцов. Обычно он расположен непосредственно над столбцами.
CMFCListCtrl::IsMultipleSort
Проверяет, поддерживает ли элемент управления списком сортировку по нескольким столбцам.
BOOL IsMultipleSort() const;
Возвращаемое значение
TRUE
Значение , если элемент управления списком поддерживает несколько сортировки; FALSE
иначе.
Замечания
CMFCListCtrl
Если класс поддерживает несколько сортировки, пользователь может сортировать данные в элементе управления списком по нескольким столбцам. Чтобы включить несколько сортировки, вызовите CMFCListCtrl::EnableMultipleSort
.
CMFCListCtrl::OnCompareItems
Платформа вызывает этот метод при сравнении двух элементов.
virtual int OnCompareItems(
LPARAM lParam1,
LPARAM lParam2,
int iColumn);
Параметры
lParam1
[in] Первый элемент для сравнения.
lParam2
[in] Второй элемент для сравнения.
iColumn
[in] Индекс столбца, который этот метод сортирует.
Возвращаемое значение
Целое число, указывающее относительную позицию двух элементов. Отрицательное значение указывает, что первый элемент должен предшествовать второму, положительное значение указывает, что первый элемент должен следовать второму, и ноль означает, что два элемента эквивалентны.
Замечания
Реализация по умолчанию всегда возвращает значение 0. Переопределите эту функцию, чтобы предоставить собственный алгоритм сортировки.
CMFCListCtrl::OnGetCellBkColor
Платформа вызывает этот метод, когда он должен определить цвет фона отдельной ячейки.
virtual COLORREF OnGetCellBkColor(
int nRow,
int nColumn);
Параметры
nRow
[in] Строка под вопросом ячейки.
nColumn
[in] Столбец под вопросом ячейки.
Возвращаемое значение
COLOREF
Значение, указывающее цвет фона ячейки.
Замечания
Реализация по умолчанию OnGetCellBkColor
не использует предоставленные входные параметры и вместо этого просто вызывает GetBkColor
. Поэтому по умолчанию весь элемент управления списком будет иметь одинаковый цвет фона. Можно переопределить OnGetCellBkColor
в производном классе, чтобы пометить отдельные ячейки с отдельным цветом фона.
CMFCListCtrl::OnGetCellFont
Платформа вызывает этот метод при получении шрифта для отдельной ячейки.
virtual HFONT OnGetCellFont(
int nRow,
int nColumn,
DWORD dwData = 0);
Параметры
nRow
[in] Строка под вопросом ячейки.
nColumn
[in] Столбец под вопросом ячейки.
dwData
[in] Определяемые пользователем данные. Реализация по умолчанию не использует этот параметр.
Возвращаемое значение
Дескриптор шрифта, который используется для текущей ячейки.
Замечания
По умолчанию этот метод возвращает NULL
. Все ячейки в элементе управления списком имеют одинаковый шрифт. Переопределите этот метод, чтобы предоставить разные шрифты для разных ячеек.
CMFCListCtrl::OnGetCellTextColor
Платформа вызывает этот метод, когда он должен определить цвет текста отдельной ячейки.
virtual COLORREF OnGetCellTextColor(
int nRow,
int nColumn);
Параметры
nRow
[in] Строка под вопросом ячейки.
nColumn
[in] Столбец под вопросом ячейки.
Возвращаемое значение
COLOREF
Значение, указывающее цвет текста ячейки.
Замечания
По умолчанию этот метод вызывает GetTextColor
независимо от входных параметров. Весь элемент управления списком будет иметь одинаковый цвет текста. Можно переопределить OnGetCellTextColor
в производном классе, чтобы пометить отдельные ячейки с отдельным цветом текста.
CMFCListCtrl::RemoveSortColumn
Удаляет столбец сортировки из списка отсортированных столбцов.
void RemoveSortColumn(int iColumn);
Параметры
iColumn
[in] Столбец, который нужно удалить.
Замечания
Этот метод удаляет столбец сортировки из элемента управления заголовком. Он вызывает CMFCHeaderCtrl::RemoveSortColumn
.
CMFCListCtrl::SetSortColumn
Задает текущий отсортированный столбец и порядок сортировки.
void SetSortColumn(
int iColumn,
BOOL bAscending = TRUE,
BOOL bAdd = FALSE);
Параметры
iColumn
[in] Столбец для сортировки.
bAscending
[in] Логическое значение, указывающее порядок сортировки.
bAdd
[in] Логическое значение, указывающее, добавляет ли метод столбец, указанный iColumn
в списке столбцов сортировки.
Замечания
Этот метод передает входные параметры элементу управления заголовка с помощью метода CMFCHeaderCtrl::SetSortColumn
.
CMFCListCtrl::Sort
Сортирует элемент управления списком.
virtual void Sort(
int iColumn,
BOOL bAscending = TRUE,
BOOL bAdd = FALSE);
Параметры
iColumn
[in] Столбец для сортировки.
bAscending
[in] Логическое значение, указывающее порядок сортировки.
bAdd
[in] Логическое значение, указывающее, добавляет ли этот метод столбец, указанный iColumn
в списке столбцов сортировки.