Элемент управления TreeListView - PullRequest
3 голосов
/ 22 марта 2011

Мне нужно реализовать элемент управления TreeList так же, как в Process Explorer.Я довольно новичок в GUI и не писал такие сложные элементы управления.

Как я вижу в Process Explorer, существует класс TreeListWindowClass, который содержит дочерние элементы: 2 заголовка, 3 полосы прокрутки (одна из них невидима?) И1 статический (место между видимыми полосами прокрутки).Как я понимаю, главный элемент управления рисует все элементы внутри себя.Также я не нашел mfcxxx.dll в прикрепленных dll.

Вопрос 1: какие рамки лучше использовать?Это: MFC, WTL, обычный WinAPI… Я посмотрел на эту реализацию http://www.codeguru.com/cpp/controls/treeview/classes/article.php/c13167 и был перепутан с> 8000 строк кода в файле cpp с огромными структурами (одна из них содержит 80 членов).Это простой WinAPI (и C без ++).Я определенно хочу использовать стиль ООП.=)

Вопрос 2: Каким должен быть дизайн верхнего уровня этого элемента управления?Можете ли вы объяснить без глубоких подробностей, как должен разрабатываться этот элемент управления?

Мои ограничения: C ++, VS10, ОС: Vista и выше.

Заранее спасибо

Ответы [ 4 ]

3 голосов
/ 22 марта 2011

Я сделал это недавно и использовал многоколоночное представление дерева из http://www.mimec.org/articles/mfc/mctree

Screenshot of Multi-Column Tree View

Это довольно простой, но он отвечает моим потребностям и довольно компактный. Он предоставляет класс CColumnTreeView, который является подклассом CView, поэтому он корректно работает со стандартным шаблоном CDocument / CView MFC.

2 голосов
/ 22 марта 2011

Вы можете найти точный эквивалент «Представления древовидного списка» в Process Explorer из источника Process Hacker (который lot лучше IMHO).

0 голосов
/ 22 марта 2011

DevExpress имеет несколько отличных элементов управления списками, но они написаны на C #. Однако вы можете настроить таргетинг на них, используя C ++ / CLI или управляемый C ++. Поэтому я не уверен, что вы можете управлять своим приложением. Так что, возможно, это не так полезно.

Что касается свободных элементов управления списками, я стараюсь держаться подальше от них из-за ошибок и отсутствия поддержки.

0 голосов
/ 22 марта 2011

Qt - это библиотека, которая предлагает полностью функционирующий QTreeWidget , который выглядит так, как будто он соответствует требованиям вашей программы.
enter image description here

...