void CMainView::OnDraw(CDC* pDC)
{
CDC dcBit;
CBitmap bmp;
dcBit.CreateCompatibleDC(pDC);
bmp.m_hObject=(HBITMAP)::LoadImage(NULL,"background.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);//装载位图
CRect rect;
GetClientRect(&rect);
pDC->FillSolidRect(rect,RGB(255,255,255));
bmp.GetBitmap(&bmpInfo);
CBitmap *pOldbmp=dcBit.SelectObject(&bmp);
pDC->BitBlt(0,0,bmpInfo.bmWidth,bmpInfo.bmHeight,&dcBit,0,0,SRCCOPY);//一般显示*/
dcBit.SelectObject(pOldbmp);
}
编译能通过,但运行后到bmp.GetBitmap(&bmpInfo);报错,过不去,为什么呢,
{
CDC dcBit;
CBitmap bmp;
dcBit.CreateCompatibleDC(pDC);
bmp.m_hObject=(HBITMAP)::LoadImage(NULL,"background.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);//装载位图
CRect rect;
GetClientRect(&rect);
pDC->FillSolidRect(rect,RGB(255,255,255));
bmp.GetBitmap(&bmpInfo);
CBitmap *pOldbmp=dcBit.SelectObject(&bmp);
pDC->BitBlt(0,0,bmpInfo.bmWidth,bmpInfo.bmHeight,&dcBit,0,0,SRCCOPY);//一般显示*/
dcBit.SelectObject(pOldbmp);
}
编译能通过,但运行后到bmp.GetBitmap(&bmpInfo);报错,过不去,为什么呢,
{ CDC dcBit;
CBitmap bmp;
dcBit.CreateCompatibleDC(pDC);
bmp.m_hObject=(HBITMAP)::LoadImageNULL,".\\res\\background.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);//装载位图
CRect rect;
GetClientRect(&rect);
pDC->FillSolidRect(rect,RGB(255,255,255));
bmp.GetBitmap(&bmpInfo);
CBitmap *pOldbmp=dcBit.SelectObject(&bmp);
pDC->BitBlt(0,0,bmpInfo.bmWidth,bmpInfo.bmHeight,&dcBit,0,0,SRCCOPY);//一般显示*/
dcBit.SelectObject(pOldbmp);
}改了之后可以了,也能显示,但有内存泄漏,用BOUNDSCHECKER检查还是说bmp.GetBitmap(&bmpInfo);有问题