如何修改frame窗口的背景颜色?   

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(#ff8080);

//保存旧的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));

}

如何修改frame窗口的背景颜色?

  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(#ff8080);

//保存旧的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));

}

【VS开发】修改窗口背景颜色大全的更多相关文章

  1. 修改UISearchBar背景颜色

    UISearchBar是由两个subView组成的,一个是UISearchBarBackGround,另一个是UITextField. 要IB中没有直接操作背景的属性.方法一:是直接将 UISearc ...

  2. win7系统窗口背景颜色设置为护眼色的方法---打开的任意窗口显示为护眼色,程序眼必备

    win7系统窗口背景颜色设置为护眼色的方法 1. 打开"窗口颜色与外观"对话框 方法1:从控制面板开始 控制面板\外观和个性化\个性化\窗口颜色和外观 方法2:桌面上鼠标右键,个性 ...

  3. jquery入门 修改网页背景颜色

    我们在浏览一些网站,尤其是一些小说网站的时候,都会有修改页面背景颜色的地方,这个功能使用jquery很容易实现. 效果图: show you code: <!doctype html> & ...

  4. QT中设置窗口背景颜色

    QWidget是所有用户界面对象的基类,这意味着可以用同样的方法为其它子类控件改变背景颜色. Qt中窗口背景的设置,下面介绍三种方法. 1.使用QPalette 2.使用Style Sheet 3.绘 ...

  5. 【BIRT】修改主题背景颜色

    下图是BIRT默认的颜色配置,为了跟系统颜色格局相一致,此处需要对颜色进行修改; 下面简单介绍了如何修改不同位置的背景颜色 对应文件地址均在目录:../webcontent/birt/styles下 ...

  6. Qt3D 设置窗口背景颜色和图案

    目录 设置窗口的颜色 复杂背景的设置 最近在用 Qt3D 做三维显示,需要设置窗口Qt3DWindow背景的颜色, 查了一些资料,做一些整理,备查. 设置窗口的颜色 如果只是最简单的需求设置某一种颜色 ...

  7. ios开发之--随机背景颜色

    记录个随机背景颜色的方法: + (UIColor*) randomColor{ NSInteger r = arc4random() % ; NSInteger g = arc4random() % ...

  8. 修改cocos2dx 背景颜色

    只需要在AppDelegate的设置FPS后面加入一行: glClearColor(1.0, 1.0, 1.0, 1.0); 同理如果要修改成其它颜色,只需修改里面的值即可( r, g, b, a);

  9. android 开发 修改系统背景(状态栏颜色、导航栏颜色、标题栏颜色等等)

    1.打开values下的styles.xml 发现有以下代码: <resources> <!-- Base application theme. --> <style n ...

随机推荐

  1. cubemx+stm32串口学习汇总资料

    这篇文章是串口中断的文章--STM32基于CubeMX的高速串口收发程序(中断模式)比较有帮助. http://www.stmcu.org.cn/module/forum/thread-616613- ...

  2. 从mysql8.0读取数据并形成pandas dataframe类型数据,精确定位行列式中的元素,并读取

    from pandas import * import pandas as pd from sqlalchemy import create_engine engine = create_engine ...

  3. js替换文本内容。实例

    <script language="javascript"> var r= "1\n2\n3\n"; //将字母\n替换成分号 alert(r.re ...

  4. 写出一条SQL语句:取出表A中第31到40行记录(SQLserver,以自增长的ID作为主键,注意: 一条Sql语句:取出表A中第31到第40记录

    解1: select top 10 * from A where id not in (select top 30 id from A) 解2: select top 10 * from A wher ...

  5. 小米oj 重拍数组求最大和

     重排数组求最大和 序号:#34难度:困难时间限制:1000ms内存限制:10M 描述 假设有一个n元素的数组(数组的元素索引从1开始),针对这个数组有q个查询请求,每个请求由一对整数li,ri组成, ...

  6. JS核心知识点:DOM\BOM\EVENT

    1.DOM(Document Object Model) :文档对象模型2. DOM节点:页面中最基本的组成部分 3. childNodes:获取某个节点下所有的子节点 在标准及ie9以上 : 会获取 ...

  7. 转:JSON Assertion 适用于json格式的响应断言

    当响应结果是json格式时,用JSON Assertion更方便判断. 1 在请求上右键添加json断言 2  编辑json Assertion 判断方式: 如果响应结果不是json格式的,fail ...

  8. dapper通用分页方法

    /// <summary> /// dapper通用分页方法 /// </summary> /// <typeparam name="T">泛型 ...

  9. 深入理解Java的三大特性之多态

    世界上最美丽的东西,看不见也摸不着,要靠心灵去感受. ——海伦·凯勒 面向对象编程有三大特性:封装.继承.多态. 封装隐藏了类的内部实现机制,可以在不影响类使用的情况下改变类的内部结构,并保护数据.对 ...

  10. win10下EditPlus不能拖拽打开文件

    今天找到篇blog,终于把win10下EditPlus不能拖拽打开文件的问题解决了:) 记录下备忘.之前通过注册表的方式添加到右键菜单,当时设置了EditPlus以管理员身份运行: 解决办法=> ...