16,548
社区成员




CImageList* m_imageList = new CImageList;
m_imageList->Create(128,128,ILC_COLOR24,8,8);
CBitmap bmp;
bmp.LoadBitmap(IDB_BITMAP1);
m_imageList->Add(&bmp,RGB(0,0,0));
//以下写法是为了测试从CImageList中获取的Bitmap
IMAGEINFO imageInfo;
m_imageList->GetImageInfo(0,&imageInfo);
CStatic* pPic1 = (CStatic*)GetDlgItem(IDC_PIC1);//Picture Ctrl
CStatic* pPic2 = (CStatic*)GetDlgItem(IDC_PIC2);//Picture Ctrl
pPic1->SetBitmap(bmp);
pPic2->SetBitmap(bmp);
// TODO: Add extra initialization here
m_imageList.Create(128,128,ILC_COLOR32,1,1);
m_bmp.LoadBitmap(IDB_BITMAP2);//green
int at=m_imageList.Add(&m_bmp,(COLORREF)0x0);
// make a bitmap for the pic1
CDC *pDC=GetDC();
m_PicBm.CreateCompatibleBitmap(pDC,128,128);
//
CDC dcMemory;
dcMemory.CreateCompatibleDC(pDC) ;
//
CBitmap *pBmpOld = dcMemory.SelectObject(&m_PicBm);
//
m_imageList.Draw(&dcMemory,at,CPoint(0,0),ILD_NORMAL);
// m_imageList.DrawIndirect() ??
dcMemory.SelectObject(pBmpOld);
dcMemory.DeleteDC();
ReleaseDC(pDC);
//
CStatic* pPic1 = (CStatic*)GetDlgItem(IDC_PIC1);
pPic1->SetBitmap((HBITMAP)m_PicBm);
m_imageList->Create(128,128,ILC_COLOR24|ILC_MASK,8,8);
m_bmp.LoadBitmap(IDB_BITMAP1);
m_imageList->Add(&m_bmp,(COLORREF)0xFFFFFF);
IMAGEINFO imageInfo;
m_imageList->GetImageInfo(0,&imageInfo);
CStatic* pPic1 = (CStatic*)GetDlgItem(IDC_PIC1);
CStatic* pPic2 = (CStatic*)GetDlgItem(IDC_PIC2);
pPic1->SetBitmap(imageInfo.hbmImage);
pPic2->SetBitmap(imageInfo.hbmImage);