MFC - Tree 树视图控件
树视图控件是一个显示项目分层列表的窗口,例如文档中的标题、索引中的条目或磁盘上的文件和目录。 每个项目都包含一个标签和一个可选的位图图像,每个项目都可以有一个与其关联的子项目列表。 通过单击某个项目,用户可以展开和折叠相关的子项目列表。 它由CTreeCtrl类表示。
序号 |
名称和描述 |
1 |
Create 创建一个树视图控件并将其附加到 CTreeCtrl 对象。 |
2 |
CreateDragImage 为指定的树视图项创建拖动位图。 |
3 |
CreateEx 使用指定的Windows扩展样式创建树控件并将其附加到CTreeCtrl对象 |
4 |
DeleteAllItems 删除树视图控件中的所有项目。 |
5 |
DeleteItem 删除树视图控件中的新项。 |
6 |
EditLabel 就地编辑指定的树视图项。 |
7 |
EndEditLabelNow 取消对当前树视图控件中树视图项的标签的编辑操作。 |
8 |
EnsureVisible 确保树视图项在其树视图控件中可见。 |
9 |
Expand 展开或折叠指定树视图项的子项。 |
10 |
GetBkColor 检索控件的当前背景颜色。 |
11 |
GetCheck 检索树控件项的检查状态。 |
12 |
GetChildItem 检索指定树视图项的子项。 |
13 |
GetCount 检索与树视图控件关联的树项目数。 |
14 |
GetDropHilightItem 检索拖放操作的目标。 |
15 |
GetEditControl 检索用于编辑指定树视图项的编辑控件的句柄。 |
16 |
GetExtendedStyle 检索当前树视图控件正在使用的扩展样式。 |
17 |
GetFirstVisibleItem 检索指定树视图项的第一个可见项。 |
18 |
GetImageList 检索与树视图控件关联的图像列表的句柄。 |
19 |
GetIndent 检索树视图项相对于其父级的偏移量(以像素为单位)。 |
20 |
GetInsertMarkColor 检索用于绘制树视图插入标记的颜色。 |
21 |
GetItem 检索指定树视图项的属性。 |
22 |
GetItemData 返回与项目关联的 32 位应用程序特定值。 |
23 |
GetItemExpandedImageIndex 检索当当前树视图控件的指定项处于展开状态时要显示的图像的索引。 |
24 |
GetItemHeight 检索树视图项的当前高度。 |
25 |
GetItemImage 检索与项目关联的图像。 |
26 |
GetItemPartRect 检索当前树视图控件中指定项的指定部分的边界矩形。 |
27 |
GetItemRect 检索树视图项的边界矩形。 |
28 |
GetItemState 返回项目的状态。 |
29 |
GetItemStateEx 检索当前树视图控件中指定项的扩展状态。 |
30 |
GetItemText 返回项目的文本。 |
31 |
GetLastVisibleItem 检索当前树视图控件中最后展开的项目。 |
32 |
GetLineColor 检索树视图控件的当前线条颜色。 |
33 |
GetNextItem 检索与指定关系匹配的下一个树视图项。 |
34 |
GetNextSiblingItem 检索指定树视图项的下一个同级项。 |
35 |
GetNextVisibleItem 检索指定树视图项的下一个可见项。 |
36 |
GetParentItem 检索指定树视图项的父级。 |
37 |
GetPrevSiblingItem 检索指定树视图项的上一个同级项。 |
38 |
GetPrevVisibleItem 检索指定树视图项的上一个可见项。 |
39 |
GetRootItem 检索指定树视图项的根。 |
40 |
GetScrollTime 检索树视图控件的最大滚动时间。 |
41 |
GetSelectedCount 检索当前树视图控件中所选项目的数量。 |
42 |
GetSelectedItem 检索当前选定的树视图项。 |
43 |
GetTextColor 检索控件的当前文本颜色。 |
44 |
GetToolTips 检索树视图控件使用的子 ToolTip 控件的句柄。 |
45 |
GetVisibleCount 检索与树视图控件关联的可见树项目数。 |
46 |
HitTest 返回与CTreeCtrl对象相关的光标的当前位置。 |
47 |
InsertItem 在树视图控件中插入新项目。 |
48 |
ItemHasChildren 如果指定项目有子项目,则返回非零 |
49 |
MapAccIdToItem 将指定的辅助功能标识符映射到当前树视图控件中树视图项的句柄。 |
50 |
MapItemToAccID 将当前树视图控件中树视图项的指定句柄映射到辅助功能标识符。 |
51 |
Select 选择、滚动到视图或重绘指定的树视图项。 |
52 |
SelectDropTarget 将树项重新绘制为拖放操作的目标。 |
53 |
SelectItem 选择指定的树视图项。 |
54 |
SelectSetFirstVisible 选择指定的树视图项作为第一个可见项。 |
55 |
SetAutoscrollInfo 设置当前树视图控件的自动滚动速率。 |
56 |
SetBkColor 设置控件的背景颜色。 |
57 |
SetCheck 设置树控件项的检查状态。 |
58 |
SetExtendedStyle 设置当前树视图控件的扩展样式 |
59 |
SetImageList 设置与树视图控件关联的图像列表的句柄。 |
60 |
SetIndent 设置树视图项相对于其父项的偏移量(以像素为单位)。 |
61 |
SetInsertMark 设置树视图控件中的插入标记。 |
62 |
SetInsertMarkColor 设置用于绘制树视图插入标记的颜色。 |
63 |
SetItem 设置指定树视图项的属性。 |
64 |
SetItemData 设置与项目关联的 32 位应用程序特定值。 |
65 |
SetItemExpandedImageIndex 设置当当前树视图控件的指定项处于展开状态时要显示的图像的索引。 |
66 |
SetItemHeight 设置树视图项目的高度。 |
67 |
SetItemImage 将图像与项目关联起来。 |
68 |
SetItemState 设置项目的状态。 |
69 |
SetItemStateEx 设置当前树视图控件中指定项的扩展状态。 |
70 |
SetItemText 设置项目的文本。 |
71 |
SetLineColor 设置树视图控件的当前线条颜色。 |
72 |
SetScrollTime 设置树视图控件的最大滚动时间。 |
73 |
SetTextColor 设置控件的文本颜色。 |
74 |
SetToolTips 设置树视图控件的子工具提示控件。 |
75 |
ShowInfoTip 显示当前树视图控件中指定项目的信息提示。 |
76 |
SortChildren 对给定父项的子项进行排序。 |
77 |
SortChildrenCB 使用应用程序定义的排序函数对给定父项的子项进行排序。 |
让我们通过创建一个新的基于 MFC 对话框的项目来研究一个简单的示例。
步骤 1 − 项目创建后,您将看到 TODO 行,即文本控件的标题。 删除标题并将其 ID 设置为 IDC_STATIC_TXT。
步骤 2 − 为静态文本控件添加值变量 m_strTree。
步骤 3 − 从"控件"工具箱中,拖动"树控件"。
步骤 4 − 在对话框中,单击树控件将其选中。 在"属性"窗口中,将"有按钮"、"有线"、"根线"、"客户端边缘"和"模态框架"属性设置为 True。
步骤 5 − 为 Tee Control 添加控件变量 m_treeCtrl。
步骤 6 − 这是 OnInitDialog() 中树控件的初始化
BOOL CMFCTreeControlDlg::OnInitDialog() {
CDialogEx::OnInitDialog();
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
// TODO: Add extra initialization here
HTREEITEM hItem, hCar;
hItem = m_treeCtrl.InsertItem(L"Car Listing", TVI_ROOT);
hCar = m_treeCtrl.InsertItem(L"Economy", hItem);
m_treeCtrl.InsertItem(L"BH-733", hCar);
m_treeCtrl.InsertItem(L"SD-397", hCar);
m_treeCtrl.InsertItem(L"JU-538", hCar);
m_treeCtrl.InsertItem(L"DI-285", hCar);
m_treeCtrl.InsertItem(L"AK-830", hCar);
hCar = m_treeCtrl.InsertItem(L"Compact", hItem);
m_treeCtrl.InsertItem(L"HG-490", hCar);
m_treeCtrl.InsertItem(L"PE-473", hCar);
hCar = m_treeCtrl.InsertItem(L"Standard", hItem);
m_treeCtrl.InsertItem(L"SO-398", hCar);
m_treeCtrl.InsertItem(L"DF-438", hCar);
m_treeCtrl.InsertItem(L"IS-833", hCar);
hCar = m_treeCtrl.InsertItem(L"Full Size", hItem);
m_treeCtrl.InsertItem(L"PD-304", hCar);
hCar = m_treeCtrl.InsertItem(L"Mini Van", hItem);
m_treeCtrl.InsertItem(L"ID-497", hCar);
m_treeCtrl.InsertItem(L"RU-304", hCar);
m_treeCtrl.InsertItem(L"DK-905", hCar);
hCar = m_treeCtrl.InsertItem(L"SUV", hItem);
m_treeCtrl.InsertItem(L"FE-948", hCar);
m_treeCtrl.InsertItem(L"AD-940", hCar);
hCar = m_treeCtrl.InsertItem(L"Truck", hItem);
m_treeCtrl.InsertItem(L"HD-394", hCar);
return TRUE; // return TRUE unless you set the focus to a control
}
步骤 7 − 当上面的代码被编译并执行时,您将看到以下输出。
❮ mfc_windows_controls.html