Bitmap到CBitmap的转换

 

Bitmap* tpBitmap = new Bitmap(width,height,PixelFormat24bppRGB);

HBITMAP aaa1;

BITMAP bm;

tpBitmap ->GetHBITMAP(Color(0,0,0),&aaa1);

CBitmap* pbm = CBitmap::FromHandle(aaa1);

 

//使用

pbm->GetBitmap(&bm);

// Paint the image.

CBitmap* pOldBitmap = dcImage.SelectObject(pbm);

pDC->SetStretchBltMode(COLORONCOLOR);

pDC->StretchBlt(rstRect->left, rstRect->top ,rstRect->Width(),rstRect->Height() , &dcImage, 0, 0, bm.bmWidth, bm.bmHeight, SRCCOPY);

dcImage.SelectObject(pOldBitmap);

 

pbm->DeleteObject();

delete tpBitmap;

 

///!!注意pbm无法将之保存留作长周期的,?好像在一定的时间后会自动释放?

///但是也不能够不释放,因为不释放下次再进入改程序段则会另外分配地址空间,则在短时间内系统会占用太多的资源

阅读更多
文章标签: delete
个人分类: 技术宗教
上一篇提问的智慧
下一篇MFC spin控件出现的一些奇怪的问题
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭