【发布时间】:2022-08-17 01:02:05
【问题描述】:
默认情况下,颜色为灰色,我想更改它。我在MainFarm.h 中使用OnEraseBkgnd,这可行,它会更改颜色,但是当代码中的某个位置更远时,mfc 再次将其更改为灰色。
BOOL CMainFrame::OnEraseBkgnd(CDC* pDC)
{
CBrush backBrush(RGB(0, 0, 0));
CBrush* pPrevBrush = pDC->SelectObject(&backBrush);
CRect rect;
pDC->GetClipBox(&rect);
pDC->PatBlt(rect.left, rect.top, rect.Width(), rect.Height(),
PATCOPY);
pDC->SelectObject(backBrush);
return TRUE;
}
-
这是 MDI 应用程序吗?
-
是的,这是 MDI 应用程序。
-
将您的画笔添加为该类的成员变量并创建一次。您正在处理程序中创建它,因此当它超出范围时它是无效的。
-
另外,考虑使用股票对象 - 我确信有一个股票黑色画笔。不需要创建库存对象。
-
它不起作用,我改变了它,但在代码的某个地方它又变灰了。