CFormView加入背景图片,当FormView大小改变时,为什么原来的位图不擦除
原来的位图擦除不擦除我也不太清楚,当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;
}