2009-02-14 7 views
2

Справочная информация:
Приложения, которые манипулируют набором данных, обычно присутствующих с использованием сетки, содержащей заголовок. Эти же приложения обычно включают фильтр, позволяющий пользователю сузить набор данных (Excel - прекрасный пример. Есть много других). В моем приложении MFC я пытаюсь сделать то же самое с помощью комбинации CListCtrl и CHeaderCtrl. Эта комбинация уже включила мое приложение для обеспечения множественной сортировки столбцов, включая использование возможностей изображения отдельных элементов заголовка для представления порядка сортировки по возрастанию/убыванию.Как добавить данные Фильтрация с использованием CListCtrl и CHeaderCtrl

Я использовал свой лучший Google-fu для поиска любых примеров, где CHeaderCtrl был расширен/настроен для включения пользовательского чертежа в учетную запись для добавления кнопки фильтра и отображения связанного меню переадресации для ввода пользователем критериев фильтра при нажатии ,

Вопрос (ы):

  1. Есть примеры, которые я пропустил?
  2. Если нет примеров, доступных через Интернет, какие подходы следует учитывать при настройке CListCtrl и CHeaderCtrl для достижения моей цели?

Дополнительные комментарии:
Один из ответов ссылочных встроенной функциональности FilterBar. Да, я это видел, но это не то, что я ищу. Я ищу специально для эмуляции нестатических, не визуально интрузивных возможностей фильтрации Excel и других приложений с поддержкой фильтров.

ответ

1

Мой Google-fu подтверждает ваши, нет примеров, которые добавляют неинвазивный интерфейс фильтра к CListCtrl, с или без CHeaderCtrl.

Простой подход
В вашем HDN_ITEMCLICK обработчике, проверьте ((NMHEADER)lParam).iButton. Для iButton == 1, это правая кнопка мыши. Вот ваш шанс показать немного CWnd -Пользовательский интерфейс фильтра. Проблема с этим подходом заключается в отсутствии визуальной индикации того, что щелчок правой кнопкой мыши вызывает меню фильтра.

Более сложный
Создание заголовков изображений трех колонок - значок фильтра, стрелка вверх + значок фильтра, стрелка вниз + значок фильтра. Если не отсортировать по столбцу, покажите только изображение с фильтром, в противном случае используйте соответствующую стрелку + изображение фильтра. Ручка нажмите на CListCtrl на уровне NM_RCLICK, чтобы получить информацию о координатах (example.) Сделайте некоторую геометрию, чтобы выяснить, был ли щелчок на значке фильтра, если это так, покажите немного CWnd -уложенный фильтр UI. Вы можете стать еще более привлекательным и показать текущий фильтр в заголовках всплывающих подсказок, создать больше изображений с цветными фильтрами, чтобы показать, когда фильтр активен.

0
Факс:

Факс: this Вы ищете?

Поскольку это на другом языке, я дал адрес googled. См. Второй результат.