当前位置: 首页 > news >正文

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);}}
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 超声波眼镜清洗机哪个更好用?四款清洁力强的超声波清洗机推荐
  • 24.8.9.11数据结构|链栈和队列
  • 程序人生-Hello’s P2P
  • vue3引入模块报错:无法找到模块“xxx”的声明文件
  • Java 守护线程练习 (2024.8.12)
  • linux 下 QT5如何编译成32位或64的方法
  • 小白零基础学数学建模系列-Day3-线性回归模型的构建与评估
  • 基于STM32开发的智能农业环境监测系统
  • 看过来!数学建模国赛常见问题汇总
  • 全面介绍`npm`的基本使用
  • ISAM2运行流程
  • Mojo 实现排序功能
  • 编程框架、编程脚手架与编程项目模板
  • docker 部署 sql server
  • c++并发编程面试题
  • codis proxy处理流程
  • Computed property XXX was assigned to but it has no setter
  • JavaScript中的对象个人分享
  • js对象的深浅拷贝
  • magento 货币换算
  • Mysql优化
  • PHP CLI应用的调试原理
  • redis学习笔记(三):列表、集合、有序集合
  • webpack+react项目初体验——记录我的webpack环境配置
  • 初识 webpack
  • 将 Measurements 和 Units 应用到物理学
  • 买一台 iPhone X,还是创建一家未来的独角兽?
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 前端学习笔记之观察者模式
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 深度学习中的信息论知识详解
  • 手机端车牌号码键盘的vue组件
  • 原生JS动态加载JS、CSS文件及代码脚本
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • Semaphore
  • 没有任何编程基础可以直接学习python语言吗?学会后能够做什么? ...
  • ​如何使用QGIS制作三维建筑
  • (1)(1.11) SiK Radio v2(一)
  • (Note)C++中的继承方式
  • (篇九)MySQL常用内置函数
  • (七)c52学习之旅-中断
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • (一)SvelteKit教程:hello world
  • (转)Java socket中关闭IO流后,发生什么事?(以关闭输出流为例) .
  • (转)LINQ之路
  • (转)socket Aio demo
  • (转)Windows2003安全设置/维护
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)
  • * 论文笔记 【Wide Deep Learning for Recommender Systems】
  • .NET C# 操作Neo4j图数据库
  • .NET Framework 服务实现监控可观测性最佳实践
  • .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分)
  • .NET Framework杂记
  • .NET Remoting学习笔记(三)信道
  • .NET WebClient 类下载部分文件会错误?可能是解压缩的锅