如题,意思就是说一个基于MFC对话框,显示一张位图没问题,但是放大后在缩小,就有问题了,出现了2张位图,一张是拉升过的,还有一张没被拉伸,我试过invalidate放大后没问题,缩小又有问题了代码
:
void CTestpicDlg::OnPaint()
{
Invalidate();
CPaintDC dc(this);
CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP1);
BITMAP bmp;
bitmap.GetBitmap(&bmp);
CDC dcCompatibleDC;
dcCompatibleDC.CreateCompatibleDC(&dc);
CBitmap*pOldmap=dcCompatibleDC.SelectObject(&bitmap);
CRect rect;
GetClientRect(&rect);
dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcCompatibleDC,0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY);
dcCompatibleDC.SelectObject(pOldmap);
DeleteObject(pOldmap);
}
:
void CTestpicDlg::OnPaint()
{
Invalidate();
CPaintDC dc(this);
CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP1);
BITMAP bmp;
bitmap.GetBitmap(&bmp);
CDC dcCompatibleDC;
dcCompatibleDC.CreateCompatibleDC(&dc);
CBitmap*pOldmap=dcCompatibleDC.SelectObject(&bitmap);
CRect rect;
GetClientRect(&rect);
dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcCompatibleDC,0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY);
dcCompatibleDC.SelectObject(pOldmap);
DeleteObject(pOldmap);
}
void CTstpicDlg::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);
Invalidate();
}