树控件的使用

目录

1、修改树控件的基础属性:

[2、准备图标 :](#2、准备图标 :)

(1)、ico后缀的图片放入当前文件路径的rc中

(2)、在Icon中添加资源,导入图片

(3)、准备HICON图标

(4)、创建图标集合

(5)、添加具体的图片

(6)、设置节点

(7)、设置默认选项

(8)、添加一个事件,完成切换出现弹框

[3、最终运行的UI界面 :](#3、最终运行的UI界面 :)

4、上诉代码的实现:


1、修改树控件的基础属性:

1、Has Lines True 出现虚线。

2、Has Buttons Ture 折叠按钮。

3、Line At Root 根节点的连线。

2、准备图标 :

(1)、ico后缀的图片放入当前文件路径的rc中

(2)、在Icon中添加资源,导入图片

(3)、准备HICON图标

(4)、创建图标集合

(5)、添加具体的图片

(6)、设置节点

(7)、设置默认选项

(8)、添加一个事件,完成切换出现弹框

3、最终运行的UI界面 :

4、上诉代码的实现:

cpp 复制代码
//树控件使用

	//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);
	
	//CImageList list;写到.h中当成员属性,不被释放
	
	//创建图标集合
	list.Create(30,30,ILC_COLOR32,4,4);
	
	//添加具体的图片
	for (int i = 0; i < 4; i++)
	{
		list.Add(icons[i]);
	}

	m_tree.SetImageList(&list, TVSIL_NORMAL);

	//2、设置节点
	HTREEITEM root = m_tree.InsertItem(TEXT("根节点"), 0, 0, NULL);
	HTREEITEM parent = m_tree.InsertItem(TEXT("父节点"), 1, 1, root);
	HTREEITEM sub1 = m_tree.InsertItem(TEXT("子节点1"), 1, 1, parent);
	HTREEITEM sub2 = m_tree.InsertItem(TEXT("子节点2"), 1, 1, parent);

	//设置默认选项
	m_tree.SelectItem(sub1);
	

	return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
}
cpp 复制代码
void CtreeApplication1Dlg::OnTvnSelchangedTree1(NMHDR *pNMHDR, LRESULT *pResult)
{
	LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR);
	// TODO: 在此添加控件通知处理程序代码
	*pResult = 0;

	//获取当前的项
	HTREEITEM item =m_tree.GetSelectedItem();

	CString name = m_tree.GetItemText(item);
	MessageBox(name);
}
相关推荐
集成显卡8 小时前
windows 下使用 bat 批处理运行 Chrome 无头模式刷一波访问量
windows·程序员
感哥9 小时前
C++ 面向对象
c++
沐怡旸10 小时前
【底层机制】std::shared_ptr解决的痛点?是什么?如何实现?如何正确用?
c++·面试
感哥17 小时前
C++ STL 常用算法
c++
saltymilk1 天前
C++ 模板参数推导问题小记(模板类的模板构造函数)
c++·模板元编程
感哥1 天前
C++ lambda 匿名函数
c++
沐怡旸1 天前
【底层机制】std::unique_ptr 解决的痛点?是什么?如何实现?怎么正确使用?
c++·面试
感哥1 天前
C++ 内存管理
c++
博笙困了2 天前
AcWing学习——双指针算法
c++·算法
感哥2 天前
C++ 指针和引用
c++