首先定义了一个 CImageList 对象,里面有85个图片(16*16的)。
然后在ListView里依次把这些图片显示出来,为什么只显示前15个,接着一个空的,然后又从第一个图片开始显示。

解决方案 »

  1.   

    代码:
    int i;
    CImageList m_imgList;
    m_imgList.Create(16, 16, ILC_COLOR8 | ILC_MASK, 0, 0);
    for(i=0;i<85;i++)
    {
        CBitmap* bitmap;
        bitmap = CBitmap::FromHandle((HBITMAP)LoadImage(NULL, "a1.bmp", 16, 16, LR_LOADFROMFILE);
        m_imgList.Add(&bitmap, RGB(0, 128, 128));
    }
    GetListCtrl()->SetImageList(&m_imgList, LVS_STATE);
    for(i=0;i<85;i++)
    {
        m_listctrl.InsertItem( LVIF_TEXT | LVIF_IMAGE, i, "Image test", 0, 0, i, NULL);
    }
      

  2.   

    你的a1.bmp是不是有85个图片啊?这85个图片应该排成一个长条形。
      

  3.   

    m_imgList.Create(16, 16, ILC_COLOR8 | ILC_MASK, 0, 0);因为最后一个参数是0,所以后面的都没有增加进去
      

  4.   

    a1.bmp是一个图片,只是说明是BMP图片。85个单独的图片。创造图片文件名的代码没写出来。
    最后一个参数虽然是0,但是为什么能成功添加进去张图片呢?
      

  5.   

    m_imgList.Create(16, 16, ILC_COLOR8 | ILC_MASK, 0, 0);把最后一个参数改到80试试。
    就算为0,好象默认的要分配一些空间,所以可以加一些图进去。