15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


Список со встроенной сортировкой и простым добавлением строк и колонок.

Автор: Mark Jackson

Компилятор: Visual C++

Описание

Пример добавляет сортировку в MFC-шный класс. Сортировка осуществляется автоматически: сортируются даты, текст и числа, по возрастанию и по убыванию, в заголовке сортируемого столбца показывается стрелка. Данный класс позволяет легко добавлять строки и колонки, а так же загружать и сохранять их ширину.

Как использовать

Необходимо добавить в проект файлы SortListCtrl.cpp/h и SortHeaderCtrl.cpp/h, а затем связать переменную CSortListCtrl с Вашим списком (Это можно сделать при помощи визарда ClassWizard).

В функции OnInitDialog диалога установите колонки и задайте их изначальную ширину. Делается это при помощи функции SetHeadings следующим образом:

m_ctlList.SetHeadings( _T("Name,120;Date of Birth,90;Score,50") );

Строки добавляются при помощи функции AddItem, у которой количество строк на входе соответствует количеству столбцов, которые мы задали:

m_ctlList.AddItem( _T("Mark Jackson"), _T("09/08/1974"), _T("100") );

Для запоминания ширины колонок используются функции LoadColumnInfo и SaveColumnInfo. Вторую функцию можно вставить в обработчик события WM_DESTROY Вашего диалога.