当前位置: 首页 > 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);}}
}

相关文章:

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

公开视频 -> 链接点击跳转公开课程博客首页 -> ​​​链接点击跳转博客主页 目录 树形视图(Tree Control) - CTreeCtrl 创建和初始化 添加和删除项 获取和设置项属性 操作项 项选择变化 项双击 项展开 示例代码 树形视图(Tree Control) - CTreeCtrl 创建和初始…...

C语言 --- 枚举、位运算

&#xff08;一&#xff09;枚举 1.概念&#xff1a;枚举是指将变量的值一一列举出来&#xff0c;变量的值只限于列举出来的值的范围 2.作用&#xff1a;a.提高代码可读性&#xff1b;b.提高代码的安全性 3.枚举类型&#xff1a; enum 枚举名 { 列举各种值 //枚举元素或枚…...

12322222222

当您和老王不在同一个网段时&#xff0c;您们之间的通信需要通过路由器来实现。这是因为不同的网段被视为不同的网络&#xff0c;而路由器的作用之一就是连接不同的网络并负责数据包的转发。下面是详细的通信流程&#xff1a; 本地网络通信尝试&#xff1a;您的设备&#xff0…...

知识改变命运:Java 语言 【可变参数】

可变参数 概念&#xff1a;Java允许一个类中多个同名同功能但是参数不同的方法&#xff0c;封装为一个方法。 基本语法&#xff1a; 访问修饰符 返回值 方法名 (数据类型...参数名) { ...... }案例&#xff1a;写一个类名DyMethod 方法名sum 计算两个整数和&#xff0c;三个整…...

Spring及相关框架的重要的问题

Java框架 问题一&#xff1a;Spring框架中的单例bean是线程安全的吗&#xff1f; 看下图&#xff0c;不能被修改的成员变量就是无状态的类&#xff0c;无状态的类没有线程安全问题&#xff0c;所以在开发中尽量避免可修改的成员变量。 回答&#xff1a;不是线程安全的&#xf…...

Linux Vim教程

Linux Vim 教程 Vim&#xff08;Vi IMproved&#xff09;是一个强大的文本编辑器&#xff0c;广泛用于编程和系统管理。本文将带你全面了解 Vim 的基础使用、常用命令、高级功能等。 1. 安装 Vim 在大多数 Linux 发行版中&#xff0c;Vim 已经预装。如果没有&#xff0c;可以…...

【学习笔记】多进程信号量控制

目录 1、CreateSemaphore 2、ReleaseSemaphore 3、CreateEvent 4、SetEvent 5、WaitForSingleObject 程序案例1&#xff1a; 程序案例2&#xff1a; 1、CreateSemaphore 创建一个计数信号量对象&#xff0c;成功时返回信号量对象的句柄&#xff1b;失败时返回NULL&…...

Redis与Memorycache的区别

Redis与Memorycache主要是持久线程和持久化的区别 1、从性能方面来说&#xff1a; Redis是单线程的&#xff0c;优点是CPU开销小&#xff0c;省去多线程线程之间切换的开销&#xff0c;但是相对于Memorycache来说海量数据的相对较低 Memorycache使用了多线程技术&#xff0c;数…...

docker和Helm Chart的基本命令和操作

一、docker基本命令和操作 1. docker login【登录】 登录 docker client&#xff0c;登录成功之后会显示 Login Succeeded。 docker login登陆到指定的镜像仓库&#xff0c;docker pull 和 docker push 操作都需要预先执行 docker login 操作&#xff1b; 指令&#xff1a;&a…...

Node中的CSRF攻击和防御

Node中的CSRF攻击和防御 假设有一个网上银行系统&#xff0c;用户可以通过该系统进行转账操作。转账功能的URL可能是这样的&#xff1a; https://www.bank.com/transfer?toAccount123456&amount1000当用户登录到银行系统&#xff0c;并在浏览器中访问这个URL时&#xff…...

CSS 多按钮根据半圆弧度排列

需求 多个按钮根据弧度&#xff0c;延边均匀排列。 实现 HTML 分两级&#xff1b;第一级&#xff0c;外层定义按钮的 compose-container 宽度&#xff1b;第二级&#xff0c;按钮集合&#xff0c;使用方法 styleBtn(index)&#xff0c;根据索引计算&#xff1b; <div c…...

【Linux】网络编程套接字Scoket:UDP网络编程

目录 一、了解UDP协议 二、了解端口和IP地址 三、套接字概述与Socket的概念 四、Socket的类型 五、 Socket的信息数据结构 六、网络字节序与主机字节序的互相转换 七、地址转换函数 八、UDP网络编程流程及相关函数 socket函数 bind函数 recvfrom函数 sendto函数 …...

基于模糊PID控制器的puma560机器人控制系统的simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 4.1 PUMA 560机器人的数学模型 4.2 PID控制原理 4.3 模糊PID控制器的设计 5.完整工程文件 1.课题概述 基于模糊PID控制器的puma560机器人控制系统的simulink建模与仿真&#xff0c;对比传统的PID控制器…...

C语言文件操作超详解

文章目录 1. 为什么使用文件2. 什么是文件2. 1 程序文件2. 2 数据文件2. 3 文件名3. 二进制文件和文本文件? 4. 文件的打开和关闭4. 1 流和标准流4. 1. 1 流4. 1. 2 标准流 4. 2 文件指针4. 3 文件的打开和关闭 5. 文件的顺序读写5. 1 顺序读写函数介绍5. 2 对比一组函数: 6. …...

表字段显示tip

需求背景&#xff1a; 生成的报表&#xff0c;前端只展示字段名称&#xff0c;计算逻辑没有解释&#xff0c;使用方频繁“骚扰”&#xff0c;实在受不了&#xff0c;增加一个字段tip&#xff0c;实现效果&#xff08;下图&#xff09;&#xff1a; 代码 结合使用el-table-colu…...

十二、享元模式

文章目录 1 基本介绍2 案例2.1 Digit 接口2.2 Color 枚举2.3 BigDigit 类2.4 DigitFactory 类2.5 Client 类2.6 Client 类的测试结果2.7 总结 3 各角色之间的关系3.1 角色3.1.1 Flyweight ( 抽象享元 )3.1.2 ConcreteFlyweight ( 具体享元 )3.1.3 UnsharedFlyweight ( 非享元 )…...

黑马Java零基础视频教程精华部分_18_Arrays各种方法

系列文章目录 文章目录 系列文章目录Arrays简介Arrays各种方法toString代码示例binarySearch代码示例copyOf代码示例copyOfRange和fill代码示例sort代码示例 Arrays简介 操作数组的工具类。 Arrays各种方法 toString代码示例 int[]arr{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; //to…...

RAG私域问答场景超级详细方案(第一期方案)[1]:工业级别构建私域问答(知识处理、知识召回排序、搜索问答模块)

RAG私域问答场景整体夏详细方案(第一期方案):工业级别构建私域问答(知识处理、知识召回排序、搜索问答模块) 大模型性能的跳阶式增长给文本摘要、信息检索、信息抽取、语义问答等自然语言处理任务带来了卓越的性能提升。同时,LangChain 作为一种基于 LLM 的框架,能够快速…...

【AI在医疗领域的应用】AI在疾病诊断、个性化治疗等领域的应用

AI在医疗领域的应用 AI在疾病诊断、个性化治疗等领域的应用 引言 人工智能&#xff08;AI&#xff09;技术正在迅速改变各个行业&#xff0c;而医疗领域无疑是AI应用最广泛、影响最深远的领域之一。AI在医疗中的应用不仅能够提高诊断的准确性和效率&#xff0c;还为个性化治疗…...

SpEL结合AOP示例

AOP不用多说&#xff0c;是spring框架的两大基石之一。SpEL是Spring Expression Language的缩写&#xff0c;意为Spring表达式语言&#xff0c;&#xff0c;其支持在运行时查询和操作对象图提供了更加丰富的功能&#xff0c;最特别的是方法调用与字符串模板功能。熟悉js的es6语…...

告别手速焦虑:大麦抢票神器让你轻松锁定心仪演出

告别手速焦虑&#xff1a;大麦抢票神器让你轻松锁定心仪演出 【免费下载链接】ticket-purchase 大麦自动抢票&#xff0c;支持人员、城市、日期场次、价格选择 项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase 还在为抢不到演唱会门票而烦恼吗&#…...

51单片学习ing

现在能够实现LED闪烁了&#xff01;&#xff01; 开心 今天学习了让LED闪烁以及LED流水灯&#xff0c;主要是了解了软件延时计算器这个工具 现在可以更灵活的变换LED的变换速度了&#xff0c;如下&#xff1a; 接下来学习到了c语言里模块化的思想&#xff0c;之前学习c的时候…...

终极空洞骑士模组管理器:用Scarab实现10倍效率提升的完整指南

终极空洞骑士模组管理器&#xff1a;用Scarab实现10倍效率提升的完整指南 【免费下载链接】Scarab An installer for Hollow Knight mods written in Avalonia. 项目地址: https://gitcode.com/gh_mirrors/sc/Scarab 你是否曾经为《空洞骑士》安装模组时感到头疼&#x…...

轨迹预测新范式(ECCV’24):渐进式任务学习框架在行人轨迹预测中的实践与优化

1. 行人轨迹预测的挑战与渐进式学习框架的诞生 预测行人未来轨迹一直是计算机视觉和智能体交互领域的核心难题。想象一下&#xff0c;当你走在拥挤的商场里&#xff0c;大脑会不自觉地预测周围行人的移动方向——这种看似简单的行为&#xff0c;对AI系统来说却需要处理复杂的时…...

颠覆式突破:多模态模型的3大技术跃迁与跨模态理解革命

颠覆式突破&#xff1a;多模态模型的3大技术跃迁与跨模态理解革命 【免费下载链接】Emu3 Next-Token Prediction is All You Need 项目地址: https://gitcode.com/gh_mirrors/em/Emu3 多模态模型作为人工智能领域的前沿方向&#xff0c;正在深刻改变机器理解世界的方式。…...

PrismML发布1比特模型:突破大模型运行困境,提升智能密度

【导语&#xff1a;大型模型在智能手机和数据中心运行面临难题&#xff0c;PrismML构建超密集智能解决方案&#xff0c;推出1比特Bonsai系列模型&#xff0c;内存占用、速度、能耗等方面表现出色&#xff0c;重塑模型设计方式。】超密集智能&#xff1a;解决大模型运行难题大型…...

智能电动汽车芯片全景解析:从MCU到SoC的技术跃迁

1. 智能电动汽车的芯片革命&#xff1a;从机械控制到数字大脑 十年前打开汽车引擎盖&#xff0c;看到的是一堆机械部件和少量电子控制单元&#xff1b;现在掀开一辆特斯拉的"前备箱"&#xff0c;映入眼帘的却是布满芯片的电路板。这个直观变化背后&#xff0c;是汽车…...

【ACCELERATED GSTREAMER PERFORMANCE GUIDE】Choosing Between videoconvert and nvvidconv for Optimal Vid

1. 理解videoconvert与nvvidconv的核心差异 第一次接触GStreamer视频处理时&#xff0c;很多人都会困惑到底该用videoconvert还是nvvidconv。这个问题就像选择交通工具&#xff1a;你是要经济实惠的公交车&#xff08;CPU处理&#xff09;&#xff0c;还是要速度更快的出租车&a…...

像素特工上线!Ostrakon-VL零售扫描终端开源部署全流程

像素特工上线&#xff01;Ostrakon-VL零售扫描终端开源部署全流程 1. 项目概览&#xff1a;当AI遇见像素艺术 在零售和餐饮行业&#xff0c;传统的图像识别系统往往采用单调的工业界面&#xff0c;操作体验枯燥乏味。今天我们要介绍的"像素特工"项目&#xff0c;彻…...

QT国际化实战:如何用tr和translate正确处理多语言(含中文乱码修复)

QT国际化实战&#xff1a;从源码到翻译的全流程解决方案 在全球化浪潮下&#xff0c;软件多语言支持已成为基础能力。作为跨平台开发框架的佼佼者&#xff0c;QT提供了完整的国际化工具链&#xff0c;但中文开发者常陷入编码混乱、翻译失效等困境。本文将系统梳理从源码规范到翻…...