通过loadimage从硬盘上得到一个位图的句柄hBitmap然后
CBitmap pBitmap;
pBitmap.Attach (hBitmap);
imagelist.Add(&pBitmap,RGB(0,0,0));
pBitmap.Detach();发现add之前和add之后imagelist.GetimageCount的数值没有变化!可以保证句柄不是空的,add返回的索引也不是空的。困扰很长时间了,郁闷~~

解决方案 »

  1.   

    其实这是一个函数,可能我要很多次的调用这个函数,出现imagelist的
    size在add前和add后没有变化的情况时候,imagelist的size不是固定的
    有的时候是100多,有的时候是400多,每次都不一样
      

  2.   

    估计是你创建列表时参数给得不适当.BOOL Create(
       int cx,
       int cy,
       UINT nFlags,
       int nInitial,
       int nGrow 
    );
    你是怎样填的?
      

  3.   

    CBitmap pBitmap;
    pBitmap.Attach (hBitmap);
    imagelist.Add(&pBitmap,RGB(0,0,0));
    pBitmap.Detach();你可以改得简单一些:
    imagelist.Add(CBitmap::FromHandle(hBitmap),RGB(0,0,0));
      

  4.   

    参数如下:
    32, 32, ILC_COLOR32 |ILC_MASK, 1, 1
      

  5.   

    还是不行啊。
    奇怪的是为什么每次不能add进去的bitmap都不是同一个?
    如果写法有错误,应该是固定的某个bitmap加不进去啊。
      

  6.   

    把参数nGrow的值改大点再看看.
      

  7.   

    更改过nGrow的大小,还是不成功。
    崩溃了!
      

  8.   

    当时帮你测试的时候我是这么写的,而且一直都这样用:
    m_ImageList.Create(16, 16, ILC_COLORDDB, 21, 0);