SetBkColor在视类中的OnEraseBkgnd()怎么不起作用啊?

youkuxiaobin 2010-03-09 04:37:24
BOOL CQisiyixiang112View::OnEraseBkgnd(CDC* pDC)
{
// TODO: Add your message handler code here and/or call default
pDC->SetBkColor(RGB(255,0,0));
return CView::OnEraseBkgnd(pDC);
}
函数不管用啊?
...全文
156 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qinhualuo 2010-03-09
  • 打赏
  • 举报
回复

BOOL CTestView::OnEraseBkgnd(CDC* pDC)

{

CRect rect;

CBrush brush;

brush.CreateSolidBrush(GetDocument()->GetViewBkColor());

pDC->GetClipBox(rect);

pDC->FillRect(rect,&brush);

return true;

}
baita96 2010-03-09
  • 打赏
  • 举报
回复
好像应该这样
BOOL CQisiyixiang112View::OnEraseBkgnd(CDC* pDC)
{
// TODO: Add your message handler code here and/or call default
CBrush brush;
brush.CreateSolidBrush( RGB(255,0,0) );
CRect rect;
GetClientRect(&rect);
pDC->FillRect( &rect, &brush );
return CView::OnEraseBkgnd(pDC);
}
fox000002 2010-03-09
  • 打赏
  • 举报
回复
lz 都没重画背景,哪来的作用
baita96 2010-03-09
  • 打赏
  • 举报
回复
俺记得SetBkColor是输出文字时的文字背景,你想改变整个窗口的背景不行吧。
Eleven 2010-03-09
  • 打赏
  • 举报
回复
你要设置view视图的背景吗?
你可以在view视图类中添加一个CBrush brush;在view类的构造函数中初始化你想要的颜色,比如:
brush.CreateSolidBrush(RGB(255, 0, 0));

添加view类的WM_CREATE消息响应函数,在OnCreate函数的return 0;语句之前加入如下语句即可:
SetClassLong(m_hWnd, GCL_HBRBACKGROUND, (LONG)brush.m_hObject);

15,979

社区成员

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

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