比如要一个图像列表中3个图像,要读第二个图像的数据到一个CBitmap中

解决方案 »

  1.   

    //创建内存dc
    CDC dcMem;
    CDC* pDC = GetDC();              //获取一个可用的DC
    dcMem.CreateCompatibleDC(pDC);//创建内存位图
    CBitmap* pBitmap = new CBitmap();
    pBitmap->CreateCompatibleBitmap(pDC,64,64); //此处的大小64*64应用CImageList中图像大小CBitmap * pOldBitmap = dcMem.SelectObject(pBitmap);CImageList* pImageList;                    
                ......//构造CImageList;
    m_pImageList->Draw(dcMem,2,CPoint(0,0),ILD_NORMAL);  //将第二个图像画到CBitmap上dcMem.SelectObject(pOldBitmap);
      

  2.   

    IMAGEINFO info;
         m_ImagelList.GetImageInfo(1/*index*/, &info);
    HBIMAP hBmp = info.hbmImage;
      

  3.   

    楼上正是正解,使用GetImageInfo就可以了
    IMAGEINFO info;
    m_ImagelList.GetImageInfo(1, &info);
    HBIMAP hBmp = info.hbmImage;
    CBitmap *pBitmap=CBitmap::FromHandle(hBmp);