@_@我做过 但没考虑你这么多的情况取EXE的ICO速度很快的动态读取我认为不可取因为那样将很麻烦比如你在800*600下可以看到76如果调整了分辨率 你可能得想办法再显示其他的你觉着呢

解决方案 »

  1.   

    关于这个还是判断文件是否为Win EXE的问题我已经回答:
    http://www.csdn.net/expert/topic/146/146212.shtm
    关于不显示不可见部分的图标,还是不用这样做,你可以在建立、显示图标的循环中
    加入DoEvents,这样就不会影响用户操作了
      

  2.   

    如果一定要使用只显示可见部分图标的方法,可以利用GetFirstVisible 方法获得
    ListView视图中第一个可见的项,然后可以利用EnsureVisible 方法判断解下来的项
    是否在ListView的视区内。
      

  3.   

    如果不使用imagelist呢?
    作成临时的文件?
      

  4.   

    TechnoFantasy(www.applevb.com)说的
     --------------"关于不显示不可见部分的图标,还是不用这样做,你可以在建立、显示图标的循环中加入DoEvents,这样就不会影响用户操作了" 这个方法我已试过了,只会引起极度闪烁问题.
    yeqiufeng(叶秋枫)所说的也不无道理,我说的第二个方法很麻烦,要实现有一定的困难,第一种方法我正在试,应该可以行的通,但还是存在一定的BUG,however,我还是把它做出来再来和大家
    讨论! 
      

  5.   

    ListView控件有一个BeginUpdate以及EndUpdate方法,分别在添加全部Item前、后调用
    可以加快执行速度,不知道你是否使用了这两个方法。
      

  6.   

    问题只解决了一半,为什么说只有一半呢?因为我将判断文件是DOSEXE还是
    WINEXE功能加入代码后,发现EXE文件的图标全部正常,但扩展名为ICO的图标
    又是清一色的图标了,看来我太马虎了,我为了减轻IMAGELIST的压力,以文件
    类型为关键字加入IMAGELIST,别的文件都还可以,但像这种EXE、ico等没有关
    联类型图标就都是清一色图标,而且我发现IMAGELIST里的图标特别吃资源,比
    如IMAGELIST中如有8个图标,就要吃掉1%的资源,而且这些图标在IMAGELIST中
    是常驻的,你一旦清除掉了,LISTVIEW也就没图标了.我还比较了一下读图标的
    速度,特别慢,读文件也是如此,我用FileSystemObject读一个有1130个文件
    的目录要3-4秒,而用资源管理器要不到1.5秒钟,WINDOW COMMANDER也是如此,
    为什么这些软件读目录如此快捷轻松,我相信VB也能做到,我手头上有个例子,
    没用任何控件,速度可以比美资源管理器,用了很多COMCTL32.DLL中的函数,
    这个例子叫edeskvb2.zip,可以到
    我真真真想不通WINDOW COMMANDER 的图标哪来的?我还发现WINDOW COMMANDER在
    读ICO文件时是一排一排读的,还请大家集思广益,帮我想个辙,解决这个该死的
    图标问题,这家伙困扰我一个多月了!也许我该试试我说的第二个方法...ListView控件有一个BeginUpdate以及EndUpdate方法?我还没用过,因为我是一个VB Beginner,请问我该到哪找调用BeginUpdate以及EndUpdate方法的例子!
      

  7.   

    sorry!这个例子叫edeskvb2.zip,可以到
    http://go.163.com/~askpro/download/edeskvb.exe处DOWNLOAD!
    The Need For Speed!
    速度其快无比!
      

  8.   

    现在我终于知道了,解决IMAGELIST的BUG是关键,我在王国荣所写的《Visual Basic 6.0 实战讲座》中找了一个浏览图标的例子,也是如此,当目录在有1000个图标时,竟耗去了37%的系统资源!谁能告诉我王国荣的MAIL,我想问问他!
      

  9.   

    上www.google.com上以王国荣做关键字找一下吧。
      

  10.   

    我已经找到了"学VB找王国荣"网站,但是很奇怪,网页上没有他的MAIL,
    而Q&A却找不到发贴子的地方?!
      

  11.   

    请问你是用什么函数得到非执行文件图标的,最好把这部分的原码发给我,[email protected]
    ,我有急用,谢谢!