CFormView加入背景图片,当FormView大小改变时,为什么原来的位图不擦除

Welson80 2008-08-19 12:10:28
原来的位图擦除不擦除我也不太清楚,当CFormView大小改变时,新的位图会被原来的位图遮住。
位图载入写在OnEraseBkgnd中
BOOL CDefaultView::OnEraseBkgnd(CDC* pDC)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值

CBitmap bitmap;
bitmap.LoadBitmapW(IDB_BITMAP1);
BITMAP bmp;
bitmap.GetBitmap(&bmp);
CDC dcCompatible;
dcCompatible.CreateCompatibleDC(pDC);
dcCompatible.SelectObject(&bitmap);
CRect rc;
GetClientRect(&rc);
pDC->StretchBlt(0,0,rc.Width(),rc.Height(),&dcCompatible,0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY);
return TRUE;
}

CFormView在主窗口中
CCreateContext *m_pCcx;
CDefaultView *m_pDefault;
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
...
m_pCcx->m_pNewViewClass=RUNTIME_CLASS(CDefaultView);
m_pDefault = DYNAMIC_DOWNCAST( CDefaultView, this->CreateView(m_pCcx) );
m_pCcx->m_pLastView=m_pDefault;
return 0;
}
...全文
165 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
yzyben 2012-08-28
  • 打赏
  • 举报
回复
今天也遇到类似问题,是在滚动中出现重影现象,最后在OnSize、OnVScroll、OnHScroll中使用Invalidate();重绘,完美解决

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧