看看例程中,那种一个位图中包括好几个图标,用的时候直接用其索引,
怎么实现的呢?就是说,我怎么才能够将我已有多个位图(16*16)也组织起来,生成这样一个list,来管理呢,不会是直接画把
最好给个例子

解决方案 »

  1.   

    我看还是在工程中导入一个新的位图IDB_IMGLIST_VIEW,将其大小设为64*16(假设有四个图标),你可以在vc的位图编辑器中将你的位图的一个一个选中,贴入到新位图中,注意,要让每个占16单位宽。
    然后在某个类——如视图类——中加入一个成员变量:
    CImageList m_imageList;
    最后在视图类的onceate函数中加上:
    if (!m_imageList.Create (IDB_IMGLIST_VIEW, 16, 1, RGB(0,255,0)))
        return -1;
    就行了。
      

  2.   

    HICON hIcon[n]//n是你的位图个数,是个常量
    int i;
    m_imageList.Create(16,16,0,8,8);
    hIcon[0] = AfxGetApp()->LoadIcon(IDI_YOURICON_1);
    //...
    hIcon[n] = AfxGetApp()->LoadIcon(IDI_YOURICON_n);for(i =0; i < n; i++)
    {
       m_imageList.Add(hIcon[i]);
    }
      

  3.   

    这是最笨的方法了!
    HICON hIcon[14];
    CImageList imageList;
    CBitmap bitmap;
    bitmap.LoadBitmap(IDB_BITMAP1);//14个图标组成的位图
    imageList.Create(24, 24, ILC_COLOR24 | ILC_MASK, 14, 1);
    imageList.Add(&bitmap, RGB(0, 255, 0));//第二个参数为透明颜色的说
    imageList.SetBkColor(CLR_NONE); HINSTANCE  HINST=AfxGetResourceHandle();
    for (int i = 0; i < 14; i++)
    {
    m_Icon[i] = imageList.ExtractIcon(i);//分解图标,以后就随你用了
    }