mfc 树列表,多个标题的那种,可以展开和折叠,写个完整案例
时间: 2024-02-06 14:02:18 浏览: 79
好的,下面是一个使用 MFC 树列表实现多个标题的案例:
首先,需要在 MFC 应用程序中添加一个树列表控件。在资源视图中找到对话框资源,添加一个树列表控件并调整其大小和位置。
接下来,在对话框类的头文件中添加以下成员变量:
```cpp
CTreeCtrl m_TreeCtrl; // 树列表控件
```
在对话框类的 OnInitDialog 函数中添加如下代码:
```cpp
// 初始化树列表控件
m_TreeCtrl.Create(WS_VISIBLE | WS_CHILD | WS_BORDER | TVS_HASBUTTONS | TVS_LINESATROOT | TVS_HASLINES, CRect(10, 10, 300, 200), this, IDC_TREE_LIST);
m_TreeCtrl.ModifyStyleEx(0, WS_EX_CLIENTEDGE);
// 添加根节点
HTREEITEM hRoot = m_TreeCtrl.InsertItem(_T("根节点"));
// 添加子节点及其子项
HTREEITEM hChild1 = m_TreeCtrl.InsertItem(_T("子节点1"), hRoot);
m_TreeCtrl.InsertItem(_T("子项1"), hChild1);
m_TreeCtrl.InsertItem(_T("子项2"), hChild1);
m_TreeCtrl.InsertItem(_T("子项3"), hChild1);
HTREEITEM hChild2 = m_TreeCtrl.InsertItem(_T("子节点2"), hRoot);
m_TreeCtrl.InsertItem(_T("子项1"), hChild2);
m_TreeCtrl.InsertItem(_T("子项2"), hChild2);
m_TreeCtrl.InsertItem(_T("子项3"), hChild2);
// 展开根节点
m_TreeCtrl.Expand(hRoot, TVE_EXPAND);
```
以上代码可以在 OnInitDialog 函数中实现树列表控件的初始化,包括添加根节点和子节点及其子项,并展开根节点。
最后,需要在资源文件的头部添加以下定义:
```cpp
#define IDC_TREE_LIST 1001
```
这样就完成了一个简单的 MFC 树列表控件的实现,可以展开和折叠多个标题。
阅读全文