MDI窗口的客户区是由frame窗口拥有的另一个窗口覆盖的。为了改变frame窗口背景的颜色,只需要这个客户区的背景颜色就可以了。你必须自己处理WM_ERASEBKND消息。下面是工作步骤:

创建一个从CWnd类继承的类,就叫它CMDIClient吧;

在CMDIFrameWnd中加入CMDIClient变量;(具体情况看下面的代码)

#include "MDIClient.h"

class CMainFrame : public CMDIFrameWnd

{

...

protected:

CMDIClient m_wndMDIClient;

}

重载CMDIFrameWnd::OnCreateClient,下面是这段代码,请注意其中的SubclassWindow();

BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs,

CCreateContext* pContext)

{

if ( CMDIFrameWnd::OnCreateClient(lpcs, pContext) )

{

m_wndMDIClient.SubclassWindow(m_hWndMDIClient);

return TRUE;

}

else

return FALSE;

}

最后要在CMDIClient中加入处理WM_ERASEBKGND的函数。

如何改变view的背景颜色?

若要改变CView,CFrameWnd或CWnd对象的背景颜色需要处理WM_ERASEBKGND消息,下面就是一个范例代码:

BOOL CSampleView::OnEraseBkgnd(CDC* pDC)

{

//设置brush为希望的背景颜色

CBrush backBrush(RGB(255, 128, 128));

//保存旧的brush

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;

}

若要改变CFromView继承类的背景颜色,下面是一个范例代码:

HBRUSH CMyFormView::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT

nCtlColor)

{

switch (nCtlColor)

{

case CTLCOLOR_BTN:

case CTLCOLOR_STATIC:

{

pDC->SetBkMode(TRANSPARENT);

//不加任何处理或设置背景为透明

}

case CTLCOLOR_DLG:

{

CBrush* back_brush;

COLORREF color;

color = (COLORREF) GetSysColor(COLOR_BTNFACE);

back_brush = new CBrush(color);

return (HBRUSH) (back_brush->m_hObject);

}

}

return(CFormView::OnCtlColor(pDC, pWnd, nCtlColor));

}

html中frame背景颜色,如何修改frame窗口的背景颜色?相关推荐

  1. 如何修改Win10窗口底色/背景颜色/护眼模式?

    如何修改Win10窗口底色/背景颜色/护眼模式? 1.按下win+r组合键,输入regedit 回车 2.定位到:HKEY_CURRENT_USER\Control Panel\Colors ,找到W ...

  2. 关于element-ui 中 table 鼠标悬停时高亮背景颜色的修改,添加fixed后颜色又出现问题

    table 鼠标悬停时高亮背景颜色的修改 .el-table tbody tr:hover>td { background-color: #颜色 } 或 .el-table__body-wrap ...

  3. android开发 修改标题栏背景_android开发修改状态栏背景色和图标颜色

    修改状态栏背景色和图标颜色 默认是黑底白字的,现在要改为白底黑字的 先看下效果图: Screenshot_2018-01-03-19-20-27-797_com.yiban1314..png 1.状态 ...

  4. android 时间颜色,android修改状态栏时间和日期颜色.docx

    an droid修改状态栏时间和日期颜色 条件:手机获取 ROOT权限和安装R.E.管理器,刷入或安装好 Recovery 并备份,我 是在死机后用 Recovery N次恢复试验才成功的. 我的手机 ...

  5. python窗口设置背景图片_PyQt5 实现给窗口设置背景图片的方法

    PyQt5 实现给窗口设置背景图片的方法 QPalette类可以十分简单的达到设置窗口背景图片的目的 def use_palette(self): self.setWindowTitle(" ...

  6. js 直接修改html中文字颜色,怎么修改textarea内字的颜色_html/css_WEB-ITnose

    怎么简单的修改textarea内部分字的颜色? 回复讨论(解决方案) 一:如果是全部字的话,直接定义textarea样式字的颜色就行. 二:如果仅是个别关键字的话,得用JS,只有在textarea里出 ...

  7. 如何修改QColorDialog窗口的背景颜色和上面的字体

    首先,想要改变QColorDialog背景颜色,就是要给指明父类,有了父类,他的背景颜色会跟着父类的变化而变化,也就是说,要降作为父类的背景颜色和字体设置成自己想要的,然后调用QColorDialog ...

  8. HLJ 亲授 装逼技巧 IB_DESIGNABLE 在xib中不通过runtimeAttribute直接修改边的宽度和颜色

    1.直接在Xcode的API Reference里面搜 IBInspectable 上面是Apple的英文教程.特别赞 2.带你走一遍 创建一个类比如 IBInspectableView 在类的开始@ ...

  9. 【转】修改static控件背景颜色和文字颜色

    当 static 控件或具有 ES_READONLY 风格的 edit 控件被绘制时,会向父窗口发送 WM_CTLCOLORSTATIC 消息.如果我们在窗口过程中处理该消息,就必须返回一个画刷句柄, ...

最新文章

  1. MapReduce编程实战之“I/O”
  2. [画图]几何图形绘制测试
  3. 将项目导入eclipse中出现的jsp页面报错
  4. [置顶] 混响音效
  5. php公众号客服系统,公众号在线客服系统哪个好,主流客服系统评测及推荐
  6. python快速入门步骤_Python快速入门
  7. mysql自带客户端连接服务器,客户端连接mysql服务器的指令 mysql -u root -p 详细讲解及使用实例...
  8. 小程序使用echarts
  9. sql的执行顺序(from平凡世界)
  10. AspnetCore 缓存篇
  11. C#实现微信自动发送消息
  12. my python voyage
  13. 中小软件企业如何生存和发展
  14. C语言二进制求数集子集
  15. 用 Silverlight 开发围棋在线对弈程序(二)MVC
  16. What is ESI?
  17. 纵向抽奖滚动效果代码
  18. Docker 镜像、容器操作--小试牛刀
  19. arcgis中如何导出奥维可识别的图_如何在奥维中加载ArcGIS发布的地图服务
  20. rust木炭有用吗_半个月使用rust语言的体验

热门文章

  1. 【单片机仿真】(九)指令系统 — 算术运算指令 之 ADD、ADDC、SUBB、INC、DEC、DA
  2. 数仓建模—数据治理的本质与实践
  3. kubernets eviction策略
  4. ms721调试总结及光电传感器板测试总结
  5. Java日志框架:Logback
  6. VUEX模块化不同模块调用其它模块的mutations报错: [vuex] unknown mutation type: XXX
  7. 我的世界服务器武器修改伤害,我的世界改伤害指令 | 手游网游页游攻略大全
  8. opencv滤镜-二值化实现黑白滤镜
  9. 一个操作系统的实现:BOOT
  10. 旅游类App的原型制作分享