VC6使用CTreeCtrl目录

使用CTreeCtrl,主要是分两步,一步是设置展开与收起的图标,还有就是往目录树里面添加数据。

一般需要设置控件的属性:Has lines, lines at root,

 

下面是一个简单的例子:

BOOL InitMytree()
{
	//节点的图标	 
	int i=0;
	int i_count=2;
	//载入图标
	HICON icon[4];
	icon[0]=AfxGetApp()->LoadIcon (IDI_ICON2); 
	icon[1]=AfxGetApp()->LoadIcon (IDI_ICON1);
	
	//创建图像列表控件
	m_imagelist=new CImageList; 
	m_imagelist->Create(16,16,ILC_COLOR8|ILC_MASK,1,1);
	m_imagelist->SetBkColor (RGB(255,255,255));
	for(int n=0;n<i_count;n++)
	{
		m_imagelist->Add(icon[n]);  //把图标载入图像列表控件
	}
	m_Tree.SetImageList(m_imagelist,TVSIL_NORMAL);  
	//为m_Tree设置一个图像列表,使CtreeCtrl的节点显示不同的图标 
	m_Tree.SetBkColor(RGB(255,255,255));
	//设置m_Tree的背景色
	
	//创建节点
	//父节点
	HTREEITEM root=m_Tree.InsertItem("所有",0,1,TVI_ROOT,TVI_LAST);
	
	//一层子节点
	HTREEITEM root1=m_Tree.InsertItem("1区",0,1,root,TVI_LAST);
	HTREEITEM root2=m_Tree.InsertItem("2区",0,1,root,TVI_LAST);
	HTREEITEM root3=m_Tree.InsertItem("2区",0,1,root,TVI_LAST);
	
	
	//二层孙子节点
	m_Tree.InsertItem("1-1区",0,1,root1,TVI_LAST);
	m_Tree.InsertItem("1-2区",0,1,root1,TVI_LAST);
	m_Tree.InsertItem("1-3区",0,1,root1,TVI_LAST);
	m_Tree.InsertItem("1-4区",0,1,root1,TVI_LAST);
	m_DefaultItem = m_Tree.InsertItem("1-5区",0,1,root1,TVI_LAST);
	
	//二层孙子节点
	m_Tree.InsertItem("2-1区",0,1,root2,TVI_LAST);
	m_Tree.InsertItem("2-2区",0,1,root2,TVI_LAST);
	m_Tree.InsertItem("2-3区",0,1,root2,TVI_LAST);
	m_Tree.InsertItem("2-4区",0,1,root2,TVI_LAST);
	m_Tree.InsertItem("2-5区",0,1,root2,TVI_LAST);
	
	//二层孙子节点
	m_Tree.InsertItem("3-1区",0,1,root3,TVI_LAST);
	m_Tree.InsertItem("3-2区",0,1,root3,TVI_LAST);
	m_Tree.InsertItem("3-2区",0,1,root3,TVI_LAST);
	m_Tree.InsertItem("3-4区",0,1,root3,TVI_LAST);
	
	m_Tree.Expand(root, TVE_EXPAND);
	m_Tree.Expand(root1, TVE_EXPAND);
	m_Tree.Expand(root2, TVE_EXPAND);
	m_Tree.Expand(root3, TVE_EXPAND);

	m_Tree.SelectItem(m_DefaultItem);

	return true;
}


 

你可能感兴趣的:(tree,imagelist)