如何实现“资源管理器”的右边ListView?

fs_windy 2000-04-28 10:20:00

一个不很新鲜的问题,就是如何实现“资源管理器”的右边ListView,要求文件类型与对应的图标一致,如:ZIP压缩文件的图标为带夹的黄色图标,如果使用VB开发,该如何处理Imagelist与listview两者,以及32x32与16x16图标的大小在Listview中实现,本人曾经将系统的图标加入Imagelist中去,但运行时出现溢出内存不足,是否Imagelist不能加载太多图标,(才300多个,就不行了),请各方高手指点!先谢!
...全文
174 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Asima 2000-04-30
  • 打赏
  • 举报
回复
试试下面的函数,需要添加相应的api函数、常量和类型的声明
这里得到的图标需要根据namespace而不是文件名来访问
Dim ImageList As Long
Dim FileInfo As SHFILEINFO
Sub SetImageList()
ImageList = SHGetFileInfo("c:\", 0, FileInfo, _
LenB(TSHFileInfo), SHGFI_SYSICONINDEX Or SHGFI_SMALLICON)
If ImageList <> 0 Then
ImageListSmall.hImageList = ImageList
End If
ImageList = SHGetFileInfo("c:\", 0, FileInfo, _
LenB(TSHFileInfo), SHGFI_SYSICONINDEX Or SHGFI_LARGEICON)
If ImageList <> 0 Then '大图标.
ImageListLarge.hImageList = ImageList
End If
End Sub
Un1 2000-04-30
  • 打赏
  • 举报
回复
事情的关键在于不是一次性将所有图标加入到ImageList,而是动态使用,需要的图标才加入。你可以在处理无效索引或关键字错误的时候读出并加入图标
dongdong 2000-04-29
  • 打赏
  • 举报
回复
补充:是HKEY_CLASSES_ROOT\txtfile\ 下,
dongdong 2000-04-29
  • 打赏
  • 举报
回复
你想要编写类似资源管理器的形式,最好不要使用上述方法,在注册表中,每一种文件类型都有自己的图标,你可以在注册表中读取,然后直接加载到LISTVIEW的ICON或SMALLICON上,例如TXT可以在HKCR(缩写)根键下读取图标的位置DEFAULTICON=?,这样,用到那一种文件类型,读取其图标,就不会溢出了。
Janven 2000-04-29
  • 打赏
  • 举报
回复
使用资源文件也行,300多个图标的文件不会很大的,用VB自带资源文件编辑器做资源文件就行了。LoadResPicture("youricon", vbResIcon)。

1,066

社区成员

发帖
与我相关
我的任务
社区描述
VB 资源
社区管理员
  • 资源
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧