如何获取“我的电脑”等虚拟文件夹图标

    在我们写程序的时候有可能需要用到我的电脑等系统图标,如何获取这些图标为我所用呢?

    网络上搜索了一遍,发现大都是ExtractIconEx某些文件,如explorer.exe、shell32.dll等文件,但这些文件图标的位置(顺序)以为操作系统的不同未必一定保持不变。

    后来突然发现,既然实现目录树的时候都能得到这些图标了,那这种方式不是更直接吗?

    大致流程如下:先用GetSystemImagelist获取系统图形列表句柄,再用SHGetSpecialFolderLocation获取这些系统虚拟文件夹的PIDL,最后用SHGetFileInfo根据PIDL传SHGFI_SYSICONINDEX标志获取一个SHFILEINFO结构,最后得到的SHFILEINFO.iIcon就是我们需要的东西。此时如果需要使用这些图标,用ImageList_GetIcon即可获得了。

    个人觉得这个方式是最简洁明了的了。欢迎大家讨论。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值