關於 TreeView 得到系統 Icon 的問題

一次使用WPF进行项目开发的经历 前言 WPF是Microsoft在.NET平台下支持使用mvvm方式设计应用及其界面的一个优秀框架,本次项目的目的是使用WPF构建一个简单的家电厂家商用演示程序。使用.NET4.7和Panuon.UI框架搭建。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NgEDfqLR-1583399917490)(%E4%B8%80%E6%AC%A1%E4%BD%BF%E7%... 阅读详情

void __fastcall TForm1::GetDriveTree(String DriveName)
{
    SHFILEINFO shfinfo;
    TTreeNode * Node1 = TreeView1->Items->Add(NULL,DriveName) ;
    ImageList1->Handle = SHGetFileInfo(DriveName.c_str(),NULL,&shfinfo,sizeof(SHFILEINFO),
    SHGFI_SMALLICON|SHGFI_SYSICONINDEX) ;
    Node1->ImageIndex = shfinfo.iIcon ;
    Node1->SelectedIndex = shfinfo.iIcon ;


    TSearchRec sr ;

    if (FindFirst(DriveName+"*.*", faAnyFile, sr) == 0)
    {
        do
        {
            if((sr.Attr & faDirectory) && sr.Name!="." && sr.Name!="..")
            {
                String temp = DriveName+sr.Name;
                TTreeNode *TempNode = TreeView1->Items->AddChild(Node1,sr.Name);
                ImageList1->Handle = SHGetFileInfo(temp.c_str(),NULL,&shfinfo,sizeof(SHFILEINFO),
                SHGFI_SMALLICON|SHGFI_SYSICONINDEX) ;
                TempNode->ImageIndex = shfinfo.iIcon ;
                TempNode->SelectedIndex = shfinfo.iIcon ;
            }
        } while (FindNext(sr) == 0);
    FindClose(sr);
    }
    TreeView1->Selected = TreeView1->GetNodeAt(1,1);
    //讓他在更新完後有指向root的動作才會觸發changing
}

//设置listview的图标。
SHFILEINFO FileInfo;
THandle ImageListHandle;
//大图标
ImageListHandle = SHGetFileInfo("C://", 0, &FileInfo, sizeof(FileInfo),
SHGFI_SYSICONINDEX | SHGFI_LARGEICON);
SendMessage(FJListView->Handle, LVM_SETIMAGELIST, LVSIL_NORMAL,ImageListHandle);
SendMessage(FJHtmlListView->Handle, LVM_SETIMAGELIST, LVSIL_NORMAL,ImageListHandle);
//小图标
ImageListHandle = SHGetFileInfo("C://", 0, &FileInfo, sizeof(FileInfo),
SHGFI_SYSICONINDEX | SHGFI_SMALLICON);

SendMessage(FJListView->Handle, LVM_SETIMAGELIST, LVSIL_SMALL,ImageListHandle);
SendMessage(FJHtmlListView->Handle, LVM_SETIMAGELIST, LVSIL_SMALL,ImageListHandle);

SHFILEINFO FileInfo;

ZeroMemory(&FileInfo,sizeof(FileInfo));
SHGetFileInfo(sFileName.c_str(), 0, &FileInfo, sizeof(FileInfo),SHGFI_ICON|SHGFI_SMALLICON );

移至頂端

原因只出在沒將 ImageList1 的 ShareImages 設為 true ...

SendMessage(FJListView->Handle, LVM_SETIMAGELIST, LVSIL_SMALL,ImageListHandle);
SendMessage(FJHtmlListView->Handle, LVM_SETIMAGELIST, LVSIL_SMALL,ImageListHandle);

SHFILEINFO FileInfo;

ZeroMemory(&FileInfo,sizeof(FileInfo));
SHGetFileInfo(sFileName.c_str(), 0, &FileInfo, sizeof(FileInfo),SHGFI_ICON|SHGFI_SMALLICON );

移至頂端

原因只出在沒將 ImageList1 的 ShareImages 設為 true ...

WPF 可以自定义字段的Treeview private string FOLDER_ICON=@"Image/33.png"; private string TAG_ICON=@"Image/31.png"; private string EDITABLE_ICON=@"Image/6.png"; private void ShowTreeView() { 阅读详情

相关推荐

weblogic等保测评操作过程

weblogic网络安全等级测评保护操作

qq_48257021的博客 2760

MFC ListControl技巧汇总

转自:http://hi.baidu.com/qi_xian/blog/item/1971aa22da89ada24723e856.html 以下未经说明,listctrl默认view 风格为report ------------------------------------------------------------------------------- 1. CListCtrl 风

ccx_john的专栏 1210

(实战)[re:Invent 2018]-001:赛道分析-(致敬1024)

打印log

Rainbow 2780

Delphi 中 listview 根据文件扩展名 设置系统图标

var FileInfo : SHFILEINFO; wwImageList:THandle; begin // 第一步, 绑定系统图标 wwImageList:=SHGetFileInfo('c:\',0,FileInfo,sizeof(FileInfo),SHGFI_SYSICONINDEX or SHGFI_SMALLICON); ImageListListView.Han

warrially的专栏 2053

RAG在医药行业为什么80%都翻车了?

这篇文章不是要劝你别做RAG,而是把坑说清楚。医药行业有它的特殊性——监管压力、专业术语密度、多语言混排、文档结构复杂——这些因素叠加在一起,让标准RAG教程里的那套方法论几乎直接失效

qq_31808385的博客 635

基于STM32设计的心率脉搏测量仪(项目资料ID:9)

本设计基于STM32F103单片机开发了一款便携式心率脉搏测量仪,通过光电传感器采集脉搏信号,经放大(约1200倍)、滤波(低通及四阶低通滤波)、比较及偏置电压调理后,由STM32进行ADC采样与数据处理。硬件采用Altium Designer设计,包含信号调理电路(限定心率范围43.4-800次/分钟)及电源管理模块;软件基于STM32CubeMX开发,利用队列存储和时间间隔平均算法优化精度,实现多终端显示(OLED实时心率/动画、MATLAB波形分析、蓝牙传输至手机)。系统支持自动启停(检测脉搏启

以培养嵌入式工程师为己任 1万+

c#使用系统ImageList显示文件图标

今天在百度知道上看到一个提问,要做个简单的文件浏览器,于是拿出以前写的半成品修改了一下,中间碰到了一点小麻烦。主要是如何在c#里面给ListView控件设置图标时使用系统的ImageList,而不是自己创建ImageList对象。先把封装了提取图标等API的FileIcon类贴出来。[csharp] view plaincopyclass FileIcon  {      [StructLayou...

bruce135lee的专栏 1897

【一 扣子客户案例合集】【 1.1 抖音电商:通过扣子智能体重塑电商服务新体验】

**摘要:**抖音电商借助扣子(Coze)智能体平台重塑客服体验,通过无代码开发、多模态交互和跨平台发布等功能,解决了传统客服高峰期压力大、成本高及响应机械等痛点。智能体采用直接面客与人工监管结合模式,实现高效精准服务,并通过解构流程、模块化设计优化系统架构。其技术优势包括零配置学习、意图识别、情绪感知等,实际应用中显著提升客服效率300%以上,改善用户体验。未来将进一步拓展至商品推荐、直播互动等场景,推动电商服务智能化升级。

商务合作|问题讨论|交流学习 请联系作者微信,加微信请务必注明来意,博客主页有联系方式 1570

CListCtrl 使用技巧

1. CListCtrl 风格       LVS_ICON: 为每个item显示大图标       LVS_SMALLICON: 为每个item显示小图标       LVS_LIST: 显示一列带有小图标的item       LVS_REPORT: 显示item详细资料       直观的理解:windows资源管理器,“查看”标签下的“大图标,小图标,列表,详细资料”

sunliangyuan的专栏 1236

MIKE21 教程 3.2 随空间变化的网格文件制作(.dfsu文件制作) 曼宁值网格文件制作

上一节讲解了如何制作时间序列文件。本节讲解如何制作仅随空间变化的文件。 目录 1 数据准备 1.1 基于地形设置 1.2 基于地形水深设置: 2 数据导入 3 数据导出

Hello Word 3941

基于FPGA的NCO实现

NCO实现原理 数字振荡器 输出频率,相位可控的正弦波,精度高,稳定性高,替代VCO,用起来方便也易于操作。 实现方式: 直接调用fpga里面的ip核,以下是IP核的配置方法: 接下来选择输出为单路还是多路: 最后生成ip核时需要注意的事项: 生成时会需要漫长的等待,因此需要如下操作: 最后成功生成: 实现代码: input clk ; input rst_n ; output [13:0]fsin_i ; wire [13:.

m0_46644103的博客 4581

qss qmenu 设置icon位置大小_微信小程序开发 | 如何在小程序中使用自定义 icon 图标...

题图:来自 Unsplash.com本文是微信小程序开发学习笔记。微信小程序 icon 组件(标签)只提供了 9 种类型的图标,不能满足开发或设计的个性化需求。为了解决这个问题,我们可以使用自定义的 icon 图标,来丰富原有的图标类型。在微信小程序中使用自定义 icon 图标有 6 种方法:1.使用 icon 图标(特指位图)2.使用 Sprite(精灵图)3.使用 CSS 样式绘制(...

weixin_39926193的博客 1037

【WRF模拟】如何查看 WPS 的输入静态地理数据(二进制格式)?

如何查看 WPS 的输入静态地理数据(二进制格式)?

WW、forever的博客 633

js写的TreeView[支持动态添加,删除,更改,ICON]

我不是很喜欢asp.net里面的TreeView,好象代码太多..现在用javascript来些个和大家分享下,大概如下图使用改类的代码如下:js类:function Node(text_,value_){ /* 作者:Mark 邮箱:benymark@gmail.com blog:Http://blog.youkuaiyun.com/benymark 节点类:记录个节点的信息 */   this.text=text_;   this.value=value_;   this.imageExpand="";//展开后I

benymark的专栏 1331

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

wpf treeview

首先一个简单的Demo 如果这实现这个Demo呢?我们从MVC三个方面入手: TreeView的View 在WPF的TreeView,你可以定制每个节点的显示方式,包括为一个节点添加多个图标,这些都只需要在XAML中配置,而不必留下复杂的C#代码。例如: 1: TreeView Name="tvProperties" Width="250" Paddi

alohaCPP的专栏 2981

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

控件-WPF中的TreeView入门

转自:https://www.cnblogs.com/izualx/archive/2011/02/03/1949055.html 最近在用WPF做开发,项目进展的还算顺利,WPF总体来说还是比较方便的,其中变化最大的主要是Listview和Treeview控件,而且TreeView似乎在WPF是一个备受指责的控件,很多人说他不好用。其实我觉得是开发人员没有掌握好WPF中所传承的MVC思想。在V...

清风ai明月的专栏 9302

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

[C#]用Forms.TreeView显示Icon会有黑边

我想要用System.Windows.Forms.TreeView来显示文件系统树,就像资源管理器那样。文件和文件夹图标是通过SHGetFileInfo函数取得的,一切很顺利,但是显示的图标外围有一圈黑边,我确实已经将ImageList.TransparentColor属性设置成了Color.Black了,看起来似乎这个透明色设置没有生效。 解决方案: ImageList.ColorDepth...

weixin_33918357的博客 273

Unity TreeView控件开发与性能优化实战

树状结构是UI开发中的基础数据结构,通过父子节点关系实现层级展示。Unity的TreeView控件基于IMGUI构建,采用数据驱动渲染原理,支持动态加载和虚拟滚动等优化技术,能高效处理复杂层级数据。在游戏开发中,TreeView常用于资源管理器、技能树等场景,其核心价值在于提供清晰的数据可视化与交互能力。针对性能优化,开发者需要关注数据加载策略(全量/动态)、对象复用和GC控制等关键点。本文以Unity编辑器扩展为例,详细解析如何实现支持多列、搜索过滤的高性能树状视图,并分享大数据量下的优化经验。

weixin_30603633的博客 403

C#TreeView读取Xml,TreeView导出到Xml

实现功能有 1.根据Xml生成TreeView 2.双击修改节点 3.右键添加子节点或添加要节点 4.右键删除当前选择的节点 5.将修改后的TreeView重新生成Xml文档 源码下载  TreeLoadXml.rar (24.14 KB, 下载次数: 627) 只有注册会员可以下载 其实这个主要是实现 了Xml生成TreeView,然后再根据TreeView生成Xml的过程 对我

jiliqiang1986的博客 7863

WPF中的TreeView入门

本文转载自:https://www.cnblogs.com/izualx/archive/2011/02/03/1949055.html 作者:izualx 转载请注明该声明。最近在用WPF做开发,项目进展的还算顺利,WPF总体来说还是比较方便的,其中变化最大的主要是Listview和Treeview控件,而且TreeView似乎在WPF是一个备受指责的控件,很多人说他不好用。其实我觉得是开发人...

xfxf996的博客 773

Unity编辑器开发:TreeView插件核心原理与实战应用

在Unity编辑器扩展开发中,树状视图(TreeView)是处理层级化、结构化数据的核心组件,其设计遵循了模型-视图分离的经典架构。TreeView作为视图控制器,不直接存储数据,而是通过TreeViewItem包装数据项,并依赖可序列化的TreeViewState来持久化用户交互状态,这种设计确保了工具在编辑器重编译后状态不丢失。掌握TreeView对于构建资源管理、技能树编辑、任务列表等专业工具至关重要,它能显著提升开发效率与工具易用性。本文深入解析了TreeView的两种数据构建模式——全量构建与按需

weixin_33674976的博客 346

treeView,

环境: VS 2008拖放控件到Dialog,    ID 为IDC_TREEVIEW11> 设置属性: Has Buttons /Has Lines 更改为true;这样会在控件中出现“+”“-”图标,和连线。 定义CImageList  对象,在InitDialog中初始化//xxxxDlg.hCImageList   m_ImageList;  //xxx

deh_1984的专栏 564

Odoo treeView列表视图详解

转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10826414.html TreeView:列表视图 1:<tree>标签的属性 【tree标签内的属性,就是界面上的表现、行为,可以通过视图继承,往tree标签增加属性来自定义tree视图的按钮。】 列表视图的根元素是<tree>,它可...

a631278993的博客 1944
上一篇: 用C++ Builder获取应用程序图标
下一篇: 星座们适合的英文名字
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值