CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

如何修改CEditView的背景颜色???

楼主Brierbird(荆棘鸟)2001-02-15 11:50:00 在 VC/MFC / 基础类 提问

      尤其是在SetReadOnly(TRUE)的时候。  
        谢谢! 问题点数:30、回复次数:12Top

1 楼Brierbird(荆棘鸟)回复于 2001-02-18 01:17:00 得分 0

        再问。。。。。Top

2 楼songshi()回复于 2001-02-18 01:27:00 得分 0

在其派生类中重载OnDraw.  
   
  在其中用画刷刷背景。eg:  
  ...  
  CBrush   brush;  
  brush.CreateSolidBrush(RGB(255,0,0));  
  CBrush*   pOldBrush   =   pDC->SelectObject(&brush);  
   
  CRect   rect;  
  GetClientRect(&rect);  
   
  pDC->FillRect(rect,&brush);  
  pDC->SelectObject(pOldBrush);  
  ....  
  Top

3 楼Brierbird(荆棘鸟)回复于 2001-02-18 12:47:00 得分 0

不行呀,如果是CView的派生类,那还可以。可是对CEditView不管用的:(((((  
  Top

4 楼111222(www.111222.cn)回复于 2001-02-18 13:09:00 得分 0

强烈关注!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Top

5 楼In355Hz(好象一条狗)回复于 2001-02-18 13:34:00 得分 0

用SetClassLong把CEditView的背景刷设为NULL,  
  再重载类的WM_ERASEBKGND消息重画背景试一试。Top

6 楼Brierbird(荆棘鸟)回复于 2001-02-18 14:05:00 得分 0

To   In355Hz,  
        我在CXXXView::OnInitialUpdate()中用了  
        SetClassLong(this->GetSafeHwnd(),   GCL_HBRBACKGROUND,   NULL);  
        之后响应  
                  CXXXView::OnEraseBkgnd(CDC*   pDC)   中  
          pDC->SetBkColor(RGB(255,   255,   0));  
        可是,依然没有得到所要的效果  
   
  各位大侠有何高见,谢谢!  
  Top

7 楼Brierbird(荆棘鸟)回复于 2001-02-18 18:35:00 得分 0

To   In355Hz,  
      我在CXXXView::OnInitialUpdate()中用了  
      SetClassLong(this->GetSafeHwnd(),   GCL_HBRBACKGROUND,   NULL);  
      之后响应  
                  CXXXView::OnEraseBkgnd(CDC*   pDC)   中  
                  pDC->SetBkColor(RGB(255,   255,   0));  
      可是,依然没有得到所要的效果  
   
  各位大侠有何高见,谢谢!Top

8 楼songshi()回复于 2001-02-19 02:46:00 得分 30

Brierbird兄,先不要撅嘴,先前是我不好,搞错了.这次告诉你一个绝对可靠的办法!!!(不过你可一定要给我分啊   ^_^)  
   
  (1)   在你的CXXXView类中添加一个画刷成员变量如m_brushBkgnd.  
  (2)   在CXXXView构造函数中Create   the   Brush:    
  m_brushBkgnd.CreateSolidBrush(RGB(R,G,B));  
  (3)   用ClassWizard在CXXXView中添加"=WM_CTLCOLOR"的消息响应函数CXXXView::CtlColor(...)  
  {  
   
  Top

9 楼songshi()回复于 2001-02-19 02:52:00 得分 0

(sorry.接上段)  
            pDC->SetBkColor(RGB(R',G',B'));//这一句是花絮,效果非常有趣(和BRUSH不同色)  
            return   m_brushBkgnd;  
  }  
   
  然后编译运行......你会看到......  
   
  思路:前面所有的错误解答对CVIEW有效,但其效果被CEDITVIEW中的EDIT控件盖住了.(请注意  
  CEditView::GetEditCtrl()方法)  
   
  既然CEditView中有CEdit控件,修改其背景颜色应该不是难事。  
  其它详细情况请参见MSDN之MFC   TECH   NOTE:TN062.....(分儿来)  
  Top

10 楼111222(www.111222.cn)回复于 2001-02-19 03:58:00 得分 0

快给分吧!我看到效果了!Top

11 楼songshi()回复于 2001-02-19 09:42:00 得分 0

谢谢111222,3:58:00还在线小弟佩服Top

12 楼Brierbird(荆棘鸟)回复于 2001-02-19 10:21:00 得分 0

呵呵,谢谢!!!Top

相关问题

  • 怎样对CEditView的字体颜色及背景色进行修改!
  • 如何修改<textarea>的背景颜色???
  • 修改数字和背景颜色?
  • 修改字段背景颜色
  • 关于对话框的背景颜色修改?
  • 普通编辑框如何修改背景颜色?
  • 如何修改菜单的背景颜色?
  • 急速请求:如何修改view类的背景颜色
  • 如何修改VB里的菜单的背景颜色阿++++++++++++
  • 怎样修改AfxMessageBox()消息框的背景颜色和按钮的颜色

关键词

  • 效果
  • null
  • cxxxview
  • ceditview
  • brushbkgnd
  • pdc
  • 背景
  • brush
  • setclasslong
  • 谢谢

得分解答快速导航

  • 帖主:Brierbird
  • songshi

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo