多次打开bmp文件!请大家给予指正其中的不合适的地方!
BOOL LoadBitmap(LPCTSTR szFilename , CBitmap& bitmap)
{
ASSERT(szFilename);
if(bitmap.m_hObject)
bitmap.DeleteObject();
HBITMAP hBitmap = NULL;
hBitmap = (HBITMAP)LoadImage(AfxGetInstanceHandle(), szFilename, IMAGE_BITMAP, 0, 0,
LR_LOADFROMFILE | LR_CREATEDIBSECTION | LR_DEFAULTSIZE);
return bitmap.Attach(hBitmap);
}
void CSysSetView::OnDraw(CDC* pDC)
{
CSysSetDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
if(m_bitmap.m_hObject)
{
BITMAP bm;
GetObject(m_bitmap.m_hObject , sizeof(bm) , &bm);
CSize size(bm.bmWidth , bm.bmHeight);
CRect rectClient;
GetClientRect(&rectClient);
CDC memDC;
memDC.CreateCompatibleDC(pDC);
memDC.SelectObject(&m_bitmap);
CPoint ptStart(0 , 0);
if(rectClient.Width() > size.cx)
ptStart.x = (rectClient.Width() - size.cx) / 2;
if(rectClient.Height() > size.cy)
ptStart.y = (rectClient.Height() - size.cy) / 2;
pDC->BitBlt(ptStart.x , ptStart.y , size.cx , size.cy , &memDC , 0 , 0 , SRCCOPY);
}
}