4 删除资源
?
- CBitmap bmp; bmp.LoadBitmap(IDB_BITMAP);
- CBitmap *pOld=pDC->SelectObject(&bmp);
- // 此时位图对象还在pDC中,因此不能马上删除
- // 而是先将位图从DC中选出 然后再删除 pDC->SelectObject(pOld);
- bmp.DeleteObject();
5 CBitmap 析构
当CBitmap作为局部变量 在其退出作用范围后,会发生析构,这时候CBitmap会将其对应的位图资源(hBitmap )释放掉。
若想继续使用该位图资源hBitmap,则在退出作用范围前,应将位图资源hBitmap和CBitmap对象通过Detach()函数进行分离
复制代码 HBITMAP CMyClass::Load()
{
CBitmap bmp;
bmp.LoadBitmap(IDB_BITMAP);
// 通过Detach 将资源与对象分离,这样bmp析构后,资源仍存在
// 否则 ,bmp析构时,会将位图资源一起析构掉,这样出了局部范围外,就不可再使用这个位图资源了
return bmp.Detach();
}
6 在仅获得HBITMAP资源句柄情况下,如何获得这个资源的BITMAP信息
BITMAP bm;
GetObject(hBitmap,sizeof(BITMAP),&bm);
7 在内存中开辟资源空间 将原图保存到内存中










