我写了一个单文档程序,重载了CMainFrame的OnEraseBkgnd方法
BOOL CMainFrame::OnEraseBkgnd(CDC* pDC)
{
CBrush backBrush(RGB(206, 206, 206));
CBrush* pOldBrush = pDC->SelectObject(&backBrush);
CRect rect;
pDC->GetClipBox(&rect);
pDC->PatBlt(rect.left, rect.top, rect.Width(), rect.Height(), PATCOPY);
pDC->SelectObject(pOldBrush);
return TRUE;
}
但是框架的背景色没有变化,谁知道是为什么,如何修改才能实现?
BOOL CMainFrame::OnEraseBkgnd(CDC* pDC)
{
CBrush backBrush(RGB(206, 206, 206));
CBrush* pOldBrush = pDC->SelectObject(&backBrush);
CRect rect;
pDC->GetClipBox(&rect);
pDC->PatBlt(rect.left, rect.top, rect.Width(), rect.Height(), PATCOPY);
pDC->SelectObject(pOldBrush);
return TRUE;
}
但是框架的背景色没有变化,谁知道是为什么,如何修改才能实现?
BOOL CMyView::OnEraseBkgnd(CDC* pDC)
{
CBrush backBrush(RGB(206, 206, 206));
CBrush* pOldBrush = pDC->SelectObject(&backBrush);
CRect rect;
pDC->GetClipBox(&rect);
pDC->PatBlt(rect.left, rect.top, rect.Width(), rect.Height(), PATCOPY);
pDC->SelectObject(pOldBrush);
return TRUE;
}
所以,由于doucment/view 对消系传递的一般性,由CFrameWnd
发出的消息先哟流经View->doc->docTemp->Frame->app
所以你搞的被拦截了。
it's ok