MFC如何修改窗口背景色(转载)
如何修改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为希望的背景颜色 //保存旧的brush //画需要的区域 return TRUE; } |
若要改变CFromView继承类的背景颜色
下面是一个范例代码:
HBRUSH CMyFormView::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) switch (nCtlColor) case CTLCOLOR_BTN: pDC->SetBkMode(TRANSPARENT); } CBrush* back_brush; } } 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为希望的背景颜色 //保存旧的brush //画需要的区域 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));
}
转载于:https://www.cnblogs.com/bcxx_qin/archive/2009/02/13/1390204.html
MFC如何修改窗口背景色(转载)相关推荐
- Ubuntu12.04如何修改窗口背景色为眼睛保护色来保护眼睛,强力推荐!!
最近突然发现盯着屏幕看的久了,眼睛会非常的痛苦,因此想改变一下系统的窗口背景颜色.其实看代码主要是在Eclipse里面察看,因此一开始我就想改变Eclipse的文本编辑框的背景颜色,效果如下图所示. ...
- VC++ 深入详解 学习笔记(5) -- 修改窗口样式续
From: http://elton.iteye.com/blog/301503 之前说过, 修改窗口大小,窗口样式的方法. 这里说明一下修改窗口的图标,光标和背景的方法. 修改窗口大小,样式是在创建 ...
- MFC中修改程序图标
在使用MFC时,我们经常需要修改我们得到的exe文件的图标.如:写一个随机画圆的小程序,我们就希望该程序的图标是个圆或者是和圆有关的图标.所以,在这里我就记录一下我修改图标的步骤. 顺便提一下,我使用 ...
- MFC处理回车窗口消失
MFC处理回车窗口消失 2011-04-24 12:21:31| 分类: C&C++&VC | 标签:对话框 回车 mfc 消失 |字号大中小 订阅 我的方法是:找到 ...
- android开发 修改标题栏背景_android开发修改状态栏背景色和图标颜色
修改状态栏背景色和图标颜色 默认是黑底白字的,现在要改为白底黑字的 先看下效果图: Screenshot_2018-01-03-19-20-27-797_com.yiban1314..png 1.状态 ...
- C++中修改窗口名称和窗口颜色
改变窗口的名称 在C++中修改窗口的名称我们需要用到C语言中的一个头文件 <windows.h> 以及函数SetConsoleTitle. //引用头文件 #include <ios ...
- 注册表第二部份、修改窗口滚动条的大小,锁定任务栏的大小和位置
注册表第二部份.修改窗口滚动条的大小,锁定任务栏的大小和位置 2010-01-26 12:15:38| 分类: 若寒注册表学习|字号 订阅 转载于:https://www.cnblogs.com/b ...
- win7中能对窗口的排列方法是_win7系统窗口排列方式怎么修改?修改窗口排列方式方法...
一般情况下,win7系统自动排列窗口的排列方式可分为层叠.纵向堆叠和并排,我们也可以自定义修改窗口排列方式,让窗口按照设置的进行排列.那么win7系统窗口排列方式怎么修改?其实修改方法很简单,接下去教 ...
- iOS 13 修改状态栏背景色
iOS 13之后,苹果禁止KVC直接修改私有属性.以前用KVC修改状态栏背景色也会Crash. 新的解决办法如下. if (@available(iOS 13.0, *)) {UIView *stat ...
最新文章
- 奥卡姆剃刀是什么?机器学习实践中那些学习模型或者那些评估指标践行了这一理论?
- 为什么要学习DOS?
- HDU 4619 Warm up 2 最大独立集
- java.两个例子充分阐述多态的可拓展性
- DataWorks功能实践速览 05——循环与遍历
- RabbitMQ Network Partitions 处理策略
- Android启示录——开始Android旅途
- Idea插件——Translation 翻译插件安装与使用
- [原]Java程序员的JavaScript学习笔记(7——jQuery基本机制)
- linux 可定义信号数,Linux系统编程(20)——信号基本概念
- 压力测试网站_JMeter简单压力测试教程
- 探秘联想台北研发中心 扒一扒system x是如何炼成的?
- Anndroid 使用相机或相册打开图片
- API函数简介 转自洪恩在线
- 【Pyecharts50例】GEO航线图/lines
- Android之模拟网络请求返回http 502、400、401、402错误码
- iphone手机屏幕开发尺寸
- java web web.xml配置_web.xml配置详解
- ubuntu修改开机密码
- 线性代数学习笔记11-2:总复习Part2(相似对角化、对称矩阵、奇异值分解SVD)
热门文章
- Java复习打卡day40
- S0391-060使用CentOS6.x将82583v网卡down掉后网卡灯仍会亮起
- bash 将二进制转换为十进制_PowerShell把IP地址转换成二进制的方法
- STA series --- 8.Timing Verification (PARTII)
- PL/SQL:DBMS_PIPE包的使用
- div垂直居中-CSS元素垂直居中方法
- K8S (kubernetes)
- 淋巴瘤最新研究进展(2022年4月)
- 微信小程序画地块(微信开放文档中腾讯地图)
- java中的依赖是啥意思_java – “ – ”(箭头)在gradle的依赖图中是什么意思?