我现在自己直接去读硬盘,就是打开硬盘,然后读MBR,DBR,FAT,ROOT,然后把找到的图片文件(JPG,TIF,GIF,BMP,PNG等),做成缩略图显示在ListCtrl中。
我的ImageList在添加图标的时候失败了,GetLastError = 8。
我一共试了两种方法:
  1)先SetImageCount,然后在循环中用Replace。
  2)不设定SetImageCount而是直接Add。第一种方法我遇到的问题是:SetImageCount(0x7300),一共大约接近3W个图标,设置完我马上GetImageCount取到的值为0,导致我Replace时失败。而我强制的把SetImageCount的参数改为0x7100,再调用GetImageCount得到的就是0x7100.好像程序当时的状态下,ImageList达到了一个阀值,超过这个值,SetImageCount就失败了。
第二种方法我遇到的问题是:同样的,添加0x7300个图标,当Add到1W到时,Add失败(返回-1),后面的图标再也加不进去了。Add调用失败后GetLastError()的值为0.就是说,0x7300次循环,最后能看到的图标只有1万多个。其它的都是白的。
用遇到同样的问题的朋友么?或者有什么好的解决办法没有?