首页 > 系统相关 >Windows图形界面(GUI)-MFC-C/C++ - 树形视图(Tree Control) - CTreeCtrl

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

时间:2024-08-09 18:28:00浏览次数:17  
标签:Control TVN 图形界面 Tree 视图 树形 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);
		}
	}
}

标签:Control,TVN,图形界面,Tree,视图,树形,CTreeCtrl,中项
From: https://blog.csdn.net/2301_80612536/article/details/141068756

相关文章

  • Windows图形界面(GUI)-MFC-C/C++ - 列表视图(List Control) - CListCtrl
    公开视频-> 链接点击跳转公开课程博客首页-> ​​​链接点击跳转博客主页目录列表视图(ListControl)-CListCtrl创建列表视图设置列表视图属性成员函数注意事项示例代码列表视图(ListControl)-CListCtrl创建列表视图在对话框编辑器中,从工具箱中拖拽一个Li......
  • MySQL 中创建视图设置字段类型
    参考:MySQL中创建视图设置字段类型在MySQL中创建视图时,不能直接在视图定义中指定新计算字段的数据类型。但是,你可以通过函数调用或其他表达式转换来隐式地确保新字段的类型。例如,如果你希望在视图中添加一个新的int类型的字段,你可以使用CAST()函数或CONVERT()函......
  • yum和rpm安装的Jenkins启动报错"Job for jenkins.service failed because the control
    jenkins卸载方式servicejenkinsstopyumcleanallyum-yremovejenkinsfind/-inamejenkins|xargs-n500rm-rf#文件名称符合name的文件。iname会忽略大小写#xargs命令可以将管道或标准输入(stdin)数据转换成命令行参数,也能够从文件的输出中读取数......
  • MySQL——数据库的设计、事务、视图
    文章目录数据库的设计1.多表之间的关系2.实现关系3.数据库设计的范式事务1.事务的基本介绍2.事务的四大特征ACID3.事务的隔离级别(了解即可)视图1.什么是视图?2.视图创建及使用方法3.注意事项4.为什么使用视图数据库的设计1.多表之间的关系一对一(了解)如:人和身份证......
  • AI绘画 Stable Diffusion后期处理—无需ControlNet也能轻松高清放大图像与老旧照片修
    大家好,我是设计师阿威分享了这么多期AI绘画StableDIffusion的入门教程和一些常用的插件玩法后,不知道大家有没有发现,SD还有一个功能,似乎没怎么用到过,它就是—后期处理。今天就给大家分享一下SD中的“后期处理”的常用玩法。后期处理可以选择「单张照片」、「批量处理......
  • 单价、库存视图
    ifobject_id('TEMPDB..#priceTable')isnotnullbegindroptable#priceTableendcreatetable#priceTable(polineCreatedOndate,pricevarchar(max),itemidvarchar(max),purchaseOrderdocnovarchar(max),)insertinto#priceTableselectmax(poli......
  • DevExpress WPF中文教程:如何在GridControl中对数据排序、分组、过滤?
    DevExpressWPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpressWPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。无论是Office办公软件的衍伸产品,还是以数据为中心......
  • 【禁止血压飙升】阿里大佬写的 Controller 太优雅了!
    作者:小塵链接:https://juejin.cn/post/7357172505961578511前言见过几千行代码的controller吗?我见过。见过全是trycatch的controller吗,我见过。见过全是字段校验的controller吗,我见过。见过全是业务代码的controller吗?不好意思,我们公司很多业务写在controller的......
  • PHP Laravel 5.2 HTTP控制器Controller介绍及示例
    在Laravel5.2中,HTTP控制器是用于处理HTTP请求的主要组件。控制器可以封装业务逻辑,并且可以使你的应用程序更加模块化和易于维护。下面我将详细介绍Laravel5.2中HTTP控制器的基本概念,并提供一些示例。创建控制器在Laravel5.2中,你可以使用Artisan命令来生成......
  • QT解析读取XML文件并显示在列表视图里
      背景:本地用数据库管理用户数据不方便,需要手动增删查改账户,存在安全风险,两个方案可供替代:1.调用接口来获取用户信息json,通过软件解析json字符串提取用户账号信息。2.直接跳过调用接口那一步,选择xml文件路径并解析。(由于第一种方案行不通,故使用第二种)步骤一:界面设计添加一......