Windows图形界面(GUI)-MFC-C/C++ - 树形视图(Tree Control) - CTreeCtrl

目录

树形视图(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);
		}
	}
}

  • 23
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值