首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

DIALOG展示位图放大后会重复

2012-07-19 
DIALOG显示位图放大后会重复如题,意思就是说一个基于MFC对话框,显示一张位图没问题,但是放大后在缩小,就有

DIALOG显示位图放大后会重复
如题,意思就是说一个基于MFC对话框,显示一张位图没问题,但是放大后在缩小,就有问题了,出现了2张位图,一张是拉升过的,还有一张没被拉伸,我试过invalidate放大后没问题,缩小又有问题了。。。代码
:[code=C/C++][/code]
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();

}

热点排行