MFC更改对话框的背景色
开发环境:
win10 64
visual studio c++ 2013
MFC对话框的程序,背景色默认是灰色的,如下图所示:
想改成其它颜色的,如蓝色的,网上查了很多方法,试了其中的几种方法,发现有的可以有的不行,记录解决的过程:
首先尝试的是SetDialogBkColor()函数
在xxxDlg.cpp文件中添加代码SetDialogBkColor(RGB(255,255,0)); 直接报错SetDialogBkColor方法不支持。
然后发现如下方法可以实现:
在void xxxDlg::OnPaint()函数的else里面添加如下代码:
CPaintDC dc(this); // 用于绘制的设备上下文
CRect rect;
GetClientRect(rect);
dc.FillSolidRect(rect, RGB(0, 0, 255)); //设置为蓝色背景
添加之前,void xxxDlg::OnPaint()函数的代码如下:
void CIMUSDlg::OnPaint()
{if (IsIconic()){CPaintDC dc(this); // 用于绘制的设备上下文SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);// 使图标在工作区矩形中居中int cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_CYICON);CRect rect;int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height() - cyIcon + 1) / 2;// 绘制图标dc.DrawIcon(x, y, m_hIcon);}else{CDialogEx::OnPaint();}
}
添加之后,void xxxDlg::OnPaint()函数的代码如下:
void CIMUSDlg::OnPaint()
{if (IsIconic()){CPaintDC dc(this); // 用于绘制的设备上下文SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);// 使图标在工作区矩形中居中int cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_CYICON);CRect rect;int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height() - cyIcon + 1) / 2;// 绘制图标dc.DrawIcon(x, y, m_hIcon);}else{CPaintDC dc(this); // 用于绘制的设备上下文CRect rect;GetClientRect(rect);dc.FillSolidRect(rect, RGB(0, 0, 255)); //设置为浅蓝色背景CDialogEx::OnPaint();}
}
运行结果成功显示蓝色背景。
MFC更改对话框的背景色相关推荐
- MFC设置对话框背景色及控件颜色
MFC设置对话框背景色及控件颜色 一.使用背景图片更改对话框背景色 在对话框源文件void CxxDlg::OnPaint()函数中 if (IsIconic()) { (这里省略) } else { ...
- c语言vc怎么改变背景板颜色,vc6.0中更改对话框背景色和字体颜色
方法一:设置所有窗口的颜色 MFC程序修改对话框的背景和文字颜色最简单的方法就是调用SetDialogBkColor函数,SetDialogBkColor是CWinApp类的成员函数,以下是该 ...
- MFC改变对话框背景颜色
原文链接: http://blog.sina.com.cn/s/blog_59955afc0100spjz.html 方法一:调用CWinApp类的成员函数SetDialogBkColor来实现. - ...
- MFC 子对话框多了任务栏图标?
在编写对话框程序时,增加了个子对话框,想使用主对话框的界面直接拿来修改,于是直接复在左边的资源管视图(ResourceView)里面直接按Ctrl键拖拉复制了一个,更改对话框标题.ID,一切顺利. 但 ...
- 如何更改图片的背景色(PS、证件照之星)
如何更改图片的背景色(PS.证件照之星) 如何更改图片的背景色(PS.证件照之星) 1.1 证照之星教你如何给证件照换背景 证照之星教你如何给证件照换背景?这个问题困扰很多人,如果你不了解证照之星, ...
- 如何更改CPropertySheet的背景色
如何更改CPropertySheet的背景色? 当然这里指的是包括改CPropertyPage和标签的背景颜色. (1)改CPropertyPage的背景色: 1)创建一个CPropertyPage的 ...
- MFC开发IM-第十二篇、MFC改变static text背景色为透明
这是别人的 建议: //***************************************** { 首先,你要区分文本框和静态文本框,这是两种不同的控件,透明方法完全不同!静态文本框的默认 ...
- 关于MFC模态对话框dlg.DoModal()返回-1的可能原因
关于MFC模态对话框dlg.DoModal()返回-1的可能原因 CDialog::DoModal()函数的原型为:virtual INT_PTR DoModal(); DoModal的返 ...
- MFC基于对话框添加图片控件
建立MFC基于对话框工程,命名为AutoRecFunct. 第一种方法:拖动一个图片控件修改其ID为IDC_STATIC_PICTURE. 右击为其添加变量m_picture. 不知为何不能在初始化的 ...
最新文章
- Spring加载properties文件的两种方式
- LocalReport Print with C# C#打印RDLC
- 深度学习(五)——DRN, Bi-directional RNN, Attention, seq2seq, DMN
- 用URLGather来管理和保存你的页面
- 操作系统之进程管理:17、死锁
- C#LeetCode刷题之#852-山脉数组的峰顶索引(Peak Index in a Mountain Array)
- oracle、sqlserver创建表、删除表、创建索引的sql
- 2021-2025年中国冻融室行业市场供需与战略研究报告
- [入门向]标准测试用例模板
- 超星高级语言程序设计实验作业 (实验02 分支与循环程序设计)(三)
- python奇数平方和_平方和
- c语言学生学籍查询流程图,C语言学生学籍管理系统
- 从0开始,如何设计一个社交电商产品
- RGB颜色值与十六进制颜色码转换工具
- HDU 5773 DP LIS变形
- 搜索 阿虚同学_阿虚
- Oracle数据库同义词详解
- 英特尔530和535哪个好_2020年终好物推荐,英特尔Evo平台认证更出彩
- intell IDE初始用
- fixture ‘xxx‘ not found