如何将CImageList中的一项转换成CBitmap?
我要用DrawState画CImageList中的某一项,但是
用GetImageInfo得到的hbitmap总是画不出来。

解决方案 »

  1.   

    HBITMAP CMainFrame::FromToolBarImage(int nIndex)
    {//功能从CImageList中提取位图
    CBitmap bm;
    CClientDC dcDes(NULL);
    CDC dc;
    dc.CreateCompatibleDC(&dcDes);
    bm.CreateCompatibleBitmap(&dcDes,50,50);
    CBitmap* pOldBmp;
    pOldBmp=dc.SelectObject(&bm);
    m_lsToolBar.Draw(&dc,nIndex,CPoint(0,0),ILD_NORMAL);
             // m_lsToolBar 为CImageList
    dc.SelectObject(pOldBmp);
    HBITMAP hRet;
    hRet=(HBITMAP)bm.GetSafeHandle();
    bm.Detach();
    return hRet;
    }
    我尝试过CImageList::GetImageInfo(),可是总是失败,不知为什么