工具箱中选择 Tree Control
连线:Has Lines 选择true
折叠按钮:has buttons 选择true
根目录上的线:lines at root 选择true
图片导入资源
将需要的资源移动到项目中的res文件夹中,在资源视图中的icon添加资源,然后导入需要用到的资源。
创建图片集合和节点设置
//树控件使用
//1、设置图标
//准备hicon图标
HICON icons[4];
icons[0] = AfxGetApp()->LoadIconW(IDI_ICON1);
icons[1] = AfxGetApp()->LoadIconW(IDI_ICON2);
icons[2] = AfxGetApp()->LoadIconW(IDI_ICON3);
icons[3] = AfxGetApp()->LoadIconW(IDI_ICON4);
//static CImageList list;
//创建图片集合 前两个参数为图片的x和y的像素宽,图像列表类型一般为32位图,列表最初图象数和图像空间大小
list.Create(30, 30, ILC_COLOR32, 4, 4);
//添加具体图片
for (int i = 0; i < 4; i++)
{
list.Add(icons[i]);
}
n_tree.SetImageList(&list, TVSIL_NORMAL);
//2、设置节点
HTREEITEM root= n_tree.InsertItem(TEXT("根节点"), 0, 0, NULL);
HTREEITEM parent = n_tree.InsertItem(TEXT("父节点"), 1, 1, root);
HTREEITEM sub1 = n_tree.InsertItem(TEXT("子节点1"), 2, 2, parent);
HTREEITEM sub2 = n_tree.InsertItem(TEXT("子节点2"), 3, 3, parent);
设置默认选项
括号中的类型为htreeitem类型
n_tree.SelectItem(sub2);
切换选项控件事件
TVN_SELCHANGED
//获取当前项
HTREEITEM item = n_tree.GetSelectedItem();
CString name = n_tree.GetItemText(item);
MessageBox(name);