您的位置:程序门 -> vb ->



关于如何快速引用系统图标传说中的系统imagelist/shgetfileinfo?欢迎学者们来集思广益


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


关于如何快速引用系统图标传说中的系统imagelist/shgetfileinfo?欢迎学者们来集思广益
发表于:2007-06-14 11:42:02 楼主
vc   和deph还有.net都非常的好调用系统imagelist,而vb却不行,我现在是通过shgetfileinfo来循环获取图标,但是有个非常大的缺陷,当1000个以上的图标的时候,就会取不到或者乱码,而且速度奇慢
  不知道各位有什么好的意见或者想法,请发到我的邮箱fuzongfan2000@yahoo.com.cn     敬请探讨!
发表于:2007-06-14 12:16:021楼 得分:0
...调用系统imagelist,而vb却不行.
什么意思?
发表于:2007-06-14 13:19:212楼 得分:0
vb可以调用imagelist阿
发表于:2007-06-15 16:13:113楼 得分:0
vb不好调用系统imagelist
发表于:2007-06-15 17:24:494楼 得分:0
用api就可以了!

declare   function   shgetfileinfo   lib   "shell32 "   alias   "shgetfileinfoa "   _
                                                            (byval   pszpath   as   any,   _
                                                            byval   dwfileattributes   as   long,   _
                                                            psfi   as   shfileinfo,   _
                                                            byval   cbfileinfo   as   long,   _
                                                            byval   uflags   as   long)   as   long


public   function   getsystemimagelist(usize   as   long)   as   long
    dim   sfi   as   shfileinfo
    '   any   valid   file   system   path   can   be   used   to   retrieve   system   image   list   handles.
    getsystemimagelist   =   shgetfileinfo( "c:\ ",   0,   sfi,   len(sfi),   shgfi_sysiconindex   or   usize)
end   function
发表于:2007-06-15 17:25:455楼 得分:0
调用时的例子:
    call   listview_setimagelist(m_hwndlv,   getsystemimagelist(shgfi_smallicon),   lvsil_small)
    call   listview_setimagelist(m_hwndlv,   getsystemimagelist(shgfi_largeicon),   lvsil_normal)
发表于:2007-06-15 17:43:286楼 得分:0
楼上2位,你们这些我都试过,结果是行不通的,vb不能直接得到系统imagelist。
发表于:2007-06-21 14:15:377楼 得分:0
虽然你们没起到一点帮助,还是谢谢你们,分只有给你们了。
发表于:2007-06-24 07:53:468楼 得分:0
zly910   写过一个资源管理器,你可以参考一下

这里也有一个(法语的):
http://www.vbfrance.com/codes/explorateur-windows_7433.aspx
发表于:2007-06-24 12:57:039楼 得分:0
vc   和deph还有.net都非常的好调用系统imagelist,而vb却不行,我现在是通过shgetfileinfo来循环获取图标,但是有个非常大的缺陷,当1000个以上的图标的时候,就会取不到或者乱码,而且速度奇慢
不知道各位有什么好的意见或者想法,请发到我的邮箱fuzongfan2000@yahoo.com.cn   敬请探讨!

---答:对于exe文件或没有共同的图标,你必须一个一个读,一个一个添加到imagelist;但对于那些具有共同的图标的文件,例如jpg文件,你就不必,因为大家都share同一个图标,添加一次就可以了,大家都指向同一index.
发表于:2007-06-24 12:57:5510楼 得分:0
答:对于exe文件或没有共同的图标的文件,你必须一个一个读,一个一个添加到imagelist;但对于那些具有共同的图标的文件,例如jpg文件,你就不必,因为大家都share同一个图标,添加一次就可以了,大家都指向同一index.


快速检索

最新资讯
热门点击