1.装载位图
从资源装载
有一种最简单的方式
void CResourseView::OnDraw(CDC* pDC)
{
CResourseDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
// TODO: add draw code for native data here
CBitmap bmp;
CDC comDC;
bmp.LoadBitmap(IDB_BITMAP1);
comDC.CreateCompatibleDC(pDC);
CBitmap *pOldBitmap = comDC.SelectObject(&bmp);
pDC->BitBlt(50, 50, 48, 48, &comDC, 0, 0, SRCCOPY);
comDC.SelectObject(pOldBitmap);
}
稍微复杂点的
void CFileOpenDlg::OnBnClickedButton2()
{
// TODO: Add your control notification handler code here
CRect r;
CBitmap* m_bitmap;
CDC dc, *pDC;
BITMAP bmp;
m_bitmap = new CBitmap();
m_bitmap->LoadBitmapW(IDB_BITMAP1);
m_bitmap->GetBitmap(&bmp);
pDC = this->GetDC();
dc.CreateCompatibleDC(pDC);
dc.SelectObject(m_bitmap);
pDC->BitBlt(200, 200, bmp.bmWidth, bmp.bmHeight, &dc,0 , 0, SRCCOPY);
m_bitmap->DeleteObject();
m_bitmap->Detach();
}
从文件装载
指定的文件装载
HANDLE hBitMap = ::LoadImage(0, "c:\\mybmp.bmp",IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
CBitmap bmp;
bmp.Attach((HBITMAP)hBitMap);
或者 前面加上#include <atlimage.h>
CImage img;
img.Load("c:\\Lena.bmp");
bmp.Attach(img.Detach());
从打开按钮打开的文件夹选择装载
CString szFilename ("C:\\Talla\\yourimg.bmp");
HBITMAP hBmp = (HBITMAP)::LoadImage(
NULL,
szFilename,
IMAGE_BITMAP,
0,
0,
LR_LOADFROMFILE|LR_CREATEDIBSECTION
);
CBitmap bmp;
bmp.Attach(hBmp);