开发环境:

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更改对话框的背景色相关推荐

  1. MFC设置对话框背景色及控件颜色

    MFC设置对话框背景色及控件颜色 一.使用背景图片更改对话框背景色 在对话框源文件void CxxDlg::OnPaint()函数中 if (IsIconic()) { (这里省略) } else { ...

  2. c语言vc怎么改变背景板颜色,vc6.0中更改对话框背景色和字体颜色

    方法一:设置所有窗口的颜色     MFC程序修改对话框的背景和文字颜色最简单的方法就是调用SetDialogBkColor函数,SetDialogBkColor是CWinApp类的成员函数,以下是该 ...

  3. MFC改变对话框背景颜色

    原文链接: http://blog.sina.com.cn/s/blog_59955afc0100spjz.html 方法一:调用CWinApp类的成员函数SetDialogBkColor来实现. - ...

  4. MFC 子对话框多了任务栏图标?

    在编写对话框程序时,增加了个子对话框,想使用主对话框的界面直接拿来修改,于是直接复在左边的资源管视图(ResourceView)里面直接按Ctrl键拖拉复制了一个,更改对话框标题.ID,一切顺利. 但 ...

  5. 如何更改图片的背景色(PS、证件照之星)

    如何更改图片的背景色(PS.证件照之星) 如何更改图片的背景色(PS.证件照之星) 1.1  证照之星教你如何给证件照换背景 证照之星教你如何给证件照换背景?这个问题困扰很多人,如果你不了解证照之星, ...

  6. 如何更改CPropertySheet的背景色

    如何更改CPropertySheet的背景色? 当然这里指的是包括改CPropertyPage和标签的背景颜色. (1)改CPropertyPage的背景色: 1)创建一个CPropertyPage的 ...

  7. MFC开发IM-第十二篇、MFC改变static text背景色为透明

    这是别人的 建议: //***************************************** { 首先,你要区分文本框和静态文本框,这是两种不同的控件,透明方法完全不同!静态文本框的默认 ...

  8. 关于MFC模态对话框dlg.DoModal()返回-1的可能原因

    关于MFC模态对话框dlg.DoModal()返回-1的可能原因 CDialog::DoModal()函数的原型为:virtual INT_PTR DoModal();       DoModal的返 ...

  9. MFC基于对话框添加图片控件

    建立MFC基于对话框工程,命名为AutoRecFunct. 第一种方法:拖动一个图片控件修改其ID为IDC_STATIC_PICTURE. 右击为其添加变量m_picture. 不知为何不能在初始化的 ...

最新文章

  1. Spring加载properties文件的两种方式
  2. LocalReport Print with C# C#打印RDLC
  3. 深度学习(五)——DRN, Bi-directional RNN, Attention, seq2seq, DMN
  4. 用URLGather来管理和保存你的页面
  5. 操作系统之进程管理:17、死锁
  6. C#LeetCode刷题之#852-山脉数组的峰顶索引(Peak Index in a Mountain Array)
  7. oracle、sqlserver创建表、删除表、创建索引的sql
  8. 2021-2025年中国冻融室行业市场供需与战略研究报告
  9. [入门向]标准测试用例模板
  10. 超星高级语言程序设计实验作业 (实验02 分支与循环程序设计)(三)
  11. python奇数平方和_平方和
  12. c语言学生学籍查询流程图,C语言学生学籍管理系统
  13. 从0开始,如何设计一个社交电商产品
  14. RGB颜色值与十六进制颜色码转换工具
  15. HDU 5773 DP LIS变形
  16. 搜索 阿虚同学_阿虚
  17. Oracle数据库同义词详解
  18. 英特尔530和535哪个好_2020年终好物推荐,英特尔Evo平台认证更出彩
  19. intell IDE初始用
  20. fixture ‘xxx‘ not found

热门文章

  1. android拷机工具,Android 3DMark大更新:无敌拷机神器
  2. 京东管培生(产品方向)线上hr面
  3. Apache的性能解读
  4. php com操作word,php 操作word 的使用com组件的总结
  5. 手机接收短信验证码生成(纯数字)
  6. dw2019连接mysql数据库_VS 2019 连接MySQL数据库配置记录
  7. 小说作者推荐:银发死鱼眼合集
  8. 图像合成:Multi-scale Image Harmonization
  9. IOTA--最便捷的网络流量分析工具
  10. 安全漏洞整改 禁用 WebDAV