运行结果:
树控件相关类:CTreeCtrl-父类是CWnd,本质上是一个控件;CTreeView-父类是CView,本质是一个视图。cimagelistcimagelistCTreeView是在CView中嵌入了一个CTreeCtrl控件
树控件的使用
2.1设置图标:CTreeCtrl::SetImageList;CTreeCtrl::GetImageList
2.2增加节点:CTreeCtrl::InserItem增加节点,并返回节点句柄
2.3获取节点:CTreeCtrl::GetSelectedItem-获取选择的节点;CTreeCtrl::GetParentItem-获取节点的父节点;CTreeCtrl::GetRootItem-获取根节点...
2.4判断:CTreeCtrl::ItemHasChildren-判断节点是否有子节点
2.5删除节点:CTreeCtrl::DeleteItem-删除指定节点;CTreeCtrl::DeleteAllItems-删除所有节点
2.6附加数据:CTreeCtrl::SetItemData;CTreeCtrl::GetItemData
实例:新建MFC基于对话框的工程MFCTree;关键代码
voidCMFCTreeDlg::DoDataExchange(CDataExchange*pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Control(pDX,IDC_TREE1,m_wndTree);//增加树控件的关联控件变量
}
BEGIN_MESSAGE_MAP(CMFCTreeDlg,CDialogEx)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_NOTIFY(NM_DBLCLK,IDC_TREE1,&CMFCTreeDlg::OnblclkTree1)//双击树控件项的事件
END_MESSAGE_MAP()
//初始化树控件
voidCMFCTreeDlg::InitTreeControl()
{
//1.设置图标列表
CImageList*pilNormal=newCImageList;
BOOLbs=pilNormal->Create(IDB_NORMAL,16,1,RGB(1,0,0));//IDB_NORMAL是bitmap资源64x16
if(bs)
{
m_wndTree.SetImageList(pilNormal,TVSIL_NORMAL);
}
else
{
AfxMessageBox(L"adsfads");
}
m_wndTree.SetItemHeight(20);//设置行高
HTREEITEMhRoot=m_wndTree.InsertItem(L"C:\\",0,2);//插入根目录
ShowFile(L"c:\\",hRoot);
}
voidCMFCTreeDlg::ShowFile(CStringstrPath,HTREEITEMhParent)
{
if(m_wndTree.ItemHasChildren(hParent))
{
return;
}
CFileFindfind;
BOOLbRet=find.FindFile(strPath+"\\*.*");
while(bRet)
{
HTREEITEMhItem;
bRet=find.FindNextFileW();
CStringstrName=find.GetFileName();
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-36344-4.html
不知道是什么品牌味道超级难喝零售假要比RIO便宜2元
科技上