3

我需要实现与 Process Explorer 中相同的 TreeList 控件。我是 GUI 的新手,没有写过这么复杂的控件。

正如我在 Process Explorer 中看到的,有一个 TreeListWindowClass,其中包含子项:2 个标题、3 个滚动条(其中一个是不可见的?)和 1 个静态(位于可见滚动条之间)。据我了解,主控件在其内部绘制所有项目。我也没有在附加的 dll 中找到 mfcxxx.dll。

问题一:用什么框架比较好?有:MFC、WTL、普通 WinAPI ......我看了这个实现http://www.codeguru.com/cpp/controls/treeview/classes/article.php/c13167并与> 8000行代码混淆具有巨大结构的 cpp 文件(其中一个包含 80 个成员)。它是普通的 WinAPI(和没有 ++ 的 C)。我绝对想使用 OOP 风格。=)

问题2:这个控件的高层设计应该是什么?你能解释一下这个控件应该如何设计吗?

我的限制:C++、VS10、操作系统:Vista 及更高版本。

提前致谢

4

4 回答 4

3

我最近这样做并使用了来自http://www.mimec.org/articles/mfc/mctree的多列树视图

多列树视图的屏幕截图

它相当基本,但它满足了我的需求并且相当紧凑。它提供了一个CColumnTreeView类,它是 - 的子类,CView因此它可以与 MFC 的标准 CDocument/CView 模式一起正常工作。

于 2011-03-22T09:29:15.910 回答
2

您可以从Process Hacker的源代码中找到与 Process Explorer 的“树列表视图”完全相同的内容(恕我直言,这好得多。)

于 2011-03-22T05:34:34.140 回答
0

Qt 是一个库,它提供了一个功能齐全的QTreeWidget,看起来它满足了您的程序的要求。
在此处输入图像描述

于 2011-03-22T09:30:39.797 回答
0

DevExpress 有一些优秀的树列表控件,但是它们是用 C# 编写的。但是,您可以使用 C++/CLI 或托管 C++ 来定位它们。所以我不确定你是否能够管理你的应用程序。所以也许它可能没有那么有用。

至于免费的树形列表控件,由于错误和缺乏支持,我尽量远离它们。

于 2011-03-22T10:02:09.233 回答