16,467
社区成员
发帖
与我相关
我的任务
分享
if (!m_bitmap.m_hObject)//没LOADBITMAP前不可以做下面的,否则会报错
{
return;
}
CRect rect;
BITMAP bmp;
m_bitmap.GetBitmap(&bmp);
CDC dcCompatible;
dcCompatible.CreateCompatibleDC(pDC);
dcCompatible.SelectObject(&m_bitmap);
GetClientRect(&rect);
pDC->StretchBlt(0,0,rect.Width(),rect.Height(),&dcCompatible,0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY);
//其他的按键来切换要显示的图,没问题的.
m_bitmap.DeleteObject();
m_bitmap.LoadBitmap(IDB_BITMAP2);
m_bitmap.DeleteObject();
m_bitmap.LoadBitmap(IDB_BITMAP1);
void CSLotteryView::OnDraw(CDC* pDC)
{
CSLotteryDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
CBitmap bitmap;//
bitmap.LoadBitmap(IDB_BITMAP1);//IDB_BITMAP1
CRect rect;
BITMAP bmp;
bitmap.GetBitmap(&bmp);
CDC dcCompatible;
dcCompatible.CreateCompatibleDC(pDC);
dcCompatible.SelectObject(&bitmap);
GetClientRect(&rect);
pDC->StretchBlt(0,0,rect.Width(),rect.Height(),&dcCompatible,0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY);
bitmap.Detach(); //
bitmap.LoadBitmap(IDB_BITMAP2); //IDB_BITMAP2
...
...
}
void CSLotteryView::OnDraw(CDC* pDC)
{
CSLotteryDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
CRect rect;
BITMAP bmp;
m_bitmap.GetBitmap(&bmp);
CDC dcCompatible;
dcCompatible.CreateCompatibleDC(pDC);
dcCompatible.SelectObject(&m_bitmap);
GetClientRect(&rect);
pDC->StretchBlt(0,0,rect.Width(),rect.Height(),&dcCompatible,0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY);
// m_bitmap.Detach();
//m_bitmap.DeleteObject();
}
void CSdiDemo6View::OnDraw(CDC* pDC)
{
CSdiDemo6Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
if (!m_bitmap.m_hObject)
{
return;
}
CRect rect;
BITMAP bmp;
m_bitmap.GetBitmap(&bmp);
if (!m_dcCompatible.m_hDC)
{
m_dcCompatible.CreateCompatibleDC(pDC);
}
m_dcCompatible.SelectObject(&m_bitmap);
GetClientRect(&rect);
pDC->StretchBlt(0,0,rect.Width(),rect.Height(),&m_dcCompatible,0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY);
}