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


Класс CMFCListCtrl

Класс CMFCListCtrl расширяет функциональные возможности класса, поддерживая расширенные функцииCListCtrlCMFCHeaderCtrl управления заголовками класса.

Синтаксис

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);

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

CObject

CCmdTarget

CWnd

CListCtrl

CMFCListCtrl

Требования

Заголовок.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 в списке столбцов сортировки.

См. также

Диаграмма иерархии
Классы
CListCtrl Класса