请教一个MFC填充背景色的问题

BOOL C2Dlg::OnEraseBkgnd(CDC* pDC)
{
GetWindowRect(rect);

pDC->SelectObject(fff);

pDC->Rectangle(rect);
return CDialogEx::OnEraseBkgnd(pDC);

}
我想一调试程序就背景显示指定的颜色,用CCLIENTDC可以,但是用这个函数传进来的
PDC好像不行,请问下是为什么呀?CBRUSH fff已经在初始化函数中定义了。

3个回答

我有有的的在在地厅需要在寺地

试下这个:
GetWindowRect(rect);
//转成屏幕坐标
ClientToScreen(rect);

CWnd* pWnd = pDC->GetWindow();

pWnd->ScreenToClient(rect);

pDC->SelectObject(fff);

pDC->Rectangle(rect);
return CDialogEx::OnEraseBkgnd(pDC);

为什么不在onpaint里面画呢

BOOL rt = CDialogEx::OnEraseBkgnd(pDC);

GetWindowRect(rect);
CBrush br(RGB(0x00, 0x0F, 0xFF));
CBrush *pOldBr = pDC->SelectObject(&rb);
pDC->Rectangle(rect);
pDC->SelectObject(pOldBr);

return rt;
试试

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问