- 公开视频 -> 链接点击跳转公开课程
- 博客首页 -> 链接点击跳转博客主页
目录
树形视图(Tree Control) - CTreeCtrl
树形视图(Tree Control) - CTreeCtrl
创建和初始化
SubclassDlgItem:将对话框中的控件子类化,使其与CTreeCtrl对象关联。Create:动态创建一个树形视图控件。
添加和删除项
InsertItem:在树形视图中插入一个新项。DeleteItem:从树形视图中删除一个项。DeleteAllItems:删除树形视图中的所有项。
获取和设置项属性
SetItemText:设置树形视图中项的文本。GetItemText:获取树形视图中项的文本。SetItemImage:设置树形视图中项的图像。GetItemImage:获取树形视图中项的图像。
操作项
Expand:展开或折叠树形视图中的项。Select:选择树形视图中的项。EnsureVisible:确保树形视图中的项可见。
项选择变化
TVN_SELCHANGED:当树形视图中的项选择发生变化时触发。
项双击
TVN_SELCHANGING:当树形视图中的项选择即将发生变化时触发。
项展开
TVN_ITEMEXPANDED:当树形视图中的项被展开或折叠后触发。
示例代码
void CMainDlg::OnBnClickedButton31()
{
DWORD dwDrivers = ::GetLogicalDrives();
for (size_t i = 0; i < 26; i++)
{
if ((dwDrivers & (1 << i)) != 0)
{
CString strDriver;
strDriver.Format(_T("%c:"), 'A' + i);
HTREEITEM hRoot = m_Tree.InsertItem(strDriver, 0, 0, TVI_ROOT, TVI_LAST);
DirFileInfo(hRoot, strDriver);
}
}
}
void CMainDlg::DirFileInfo(HTREEITEM hParent, const CString& strPath)
{
CFileFind fileFind;
CString CurPath = strPath + _T("\\*.*");
BOOL bRet = fileFind.FindFile(CurPath);
while (bRet)
{
bRet = fileFind.FindNextFileW();
if (fileFind.IsDirectory() && !fileFind.IsDots())
{
HTREEITEM hRoot = m_Tree.InsertItem(fileFind.GetFileName(), 0, 0, hParent);
DirFileInfo(hRoot, strPath + _T("\\") + fileFind.GetFileName());
}
else if (!fileFind.IsDirectory() && !fileFind.IsDots() && !fileFind.IsHidden())
{
m_Tree.InsertItem(fileFind.GetFileName(), 0, 0, hParent);
}
}
}