ImageList中的图片数量到一定数量后,不能再增加,为何?(50分)

  • 主题发起人 主题发起人 shang_yan
  • 开始时间 开始时间
S

shang_yan

Unregistered / Unconfirmed
GUEST, unregistred user!
我做了一个程序,其中在ImageList中用Add方法不断添加100*100的图片,当加进的图片到
500个左右的时候,无法再加进去ImageList.add的返回值为-1,我的电脑是PIII,128M,我估计
应该是某些资源耗尽了,才导致了这一现象。用一些工具查看,发现可用内存为10M,GDI可用
40%,SYSTEM可用45%,应该没有问题。
不知谁能提供建议?我做的软件是用Imagelist结合ListView做一个缩略图查看工具。象ACDSee
那样的。

I
 
动态向imagelist里加图片,对于当前不显示的图标就删掉,,,,[:D]
 
但是我一定要加这么多呢?
 
用多个吧
 
难道用一个不行吗?
 
加到500个相当于windows给你开了一个宽100高50000的彩色图片和一个100*50000的单色图片(mask), 再大大概就不支持了吧.
 
你可以到www.efg2.com看一下,我的程序即加到821个文件没问题!这是Windows 本身的限制,
他跟显示卡内存有关.
http://www.efg2.com/Lab/Graphics/VeryLargeBitmap.htm
There are significant limitations in creating a very large bitmap in Windows 95/98. Surprisingly, having a lot of CPU memory and video card memory doesn't necessarily mean a larger bitmap can be created. Resource limitations (mostly available memory) appear to be the only restriction for Windows NT/2000/XP.
 
我的建议是每到500个图片,再创建一个ImageList控件即可!
 
这个问题我已自己解决,但不是上面诸位说的原因。
其实ImageList中甚至可以加1000个图片都没有问题。
 
怎么解决的。能说说吗?
 
看看下面这段话:
Image lists are used to efficiently manage large sets of icons or bitmaps. All images in an image list are contained in a single, wide bitmap in screen device format.
不要说那么绝对,看看这篇文章
http://www.efg2.com/Lab/Graphics/VeryLargeBitmap.htm
 
但我确实用它显示了1000张图片。我的显卡是Geforce2,16M
 
卖关子, 有人要关子吗?
 
我认为这个问题的讨论已结束,如果看不明白http://www.efg2.com/Lab/Graphics/VeryLargeBitmap.htm
文章的话可以参考
http://bluemoon.myrice.com/efg/graphics/VLBE.htm,
你可以用该地方提供的程序测试你机器所能产生的最大图像文件。
 
接受答案了.
 
后退
顶部