c语言vc怎么改变背景板颜色,vc6.0中更改对话框背景色和字体颜色
方法一:设置所有窗口的颜色 MFC程序修改对话框的背景和文字颜色最简单的方法就是调用SetDialogBkColor函数,SetDialogBkColor是CWinApp类的成员函数,以下是该函数的原型: void CWinApp::SetDialogBkColor(COLORREF clrCtlBk, COLORREF clrCtlText); 请注意,SetDialogBkColor函数并不是对Windows的某个API的封装,他是MFC框架的一部分,所以不使用MFC的程序也就不能享受这种方便。这个函数的使用很简单,在程序的CWinApp派生类的InitInstance函数中,添加一行代码就行了,写在domodal()的上一句: SetDialogBkColor(RGB(188,197,230),RGB(13,125,188)); 注:前一个为背景色,后一个为字体颜色。
方法二:设置当前窗口 改变对话框的背景颜色的原理很简单,就是响应WM_ERASEBKGND消息,用自定义的颜色填充对话框的客户区背景,代替对话框窗口默认的背景填充动作。 改变控件和字体的颜色同理,是响应WM_CTLCOLOR这一消息。 首先://消息映射 BEGIN_MESSAGE_MAP(CHelloDlg, CDialog) //{{AFX_MSG_MAP(CHelloDlg) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_CTLCOLOR() //字体颜色 ON_WM_ERASEBKGND() //背景色 ON_WM_QUERYDRAGICON() //}}AFX_MSG_MAP END_MESSAGE_MAP()
其次:定义两个函数 afx_msg BOOL OnEraseBkgnd(CDC* pDC); afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
第三:重载OnEraseBkgnd和OnCtlColor
其中预先定义:protected: CBrush m_brBkgnd;
//设置对话框背景色
方法一:可以实现(但有点问题) BOOL CHelloDlg::OnEraseBkgnd(CDC* pDC) CRect rect; GetClientRect(&rect); m_brBkgnd.CreateSolidBrush(RGB(183,213,213)); //背景色 pDC->FillRect(&rect,&m_brBkgnd); return TRUE; }
方法二:可行
BOOL CClientDlg::OnEraseBkgnd(CDC* pDC) CBrush back(RGB(220,215,254)); CBrush* pold=pDC->SelectObject(&back); CRect rect; pDC->GetClipBox (&rect); pDC->PatBlt (rect.left,rect.top,rect.Width(),rect.Height(),PATCOPY); pDC->SelectObject(pold); return TRUE; }
方法三:也可行
BOOL CHelloDlg::OnEraseBkgnd(CDC* pDC) CBrush MyBrush; MyBrush.CreateSolidBrush(RGB(0,255,0)); CBrush *pOldBrush=pDC->SelectObject(&MyBrush); CRect Rect; GetClientRect(&Rect); pDC->Rectangle(&Rect); pDC->SelectObject(pOldBrush); return TRUE;
//设置对话框中控件的字体颜色 HBRUSH CHelloDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); if(pWnd->GetDlgCtrlID() == IDC_EDIT_MULLINE) //多行edit控件 pDC->SetTextColor(RGB(13,125,188)); //设置字体颜色 return hbr; else pDC->SetBkMode(TRANSPARENT); pDC->SetTextColor(RGB(255,125,188)); return (HBRUSH)m_brBkgnd; //因为CBrush类实现了HBRUSH类型转换操作符 }
原文来源 :http://it.chinawin.net/softwaredev/article-14054.html
c语言vc怎么改变背景板颜色,vc6.0中更改对话框背景色和字体颜色相关推荐
- VC项目配置基础 (VC6.0 和VC2005)
转载:http://blog.csdn.net/jwcoffee/article/details/5826981 一.预处理宏 1. 通用宏 VC6.0 中: Project Setting à C/ ...
- R语言ggplot2条形图(bar plot)可视化:更改一个条形(bar)的颜色、突出一个条形(bar)的颜色
R语言ggplot2条形图(bar plot)可视化:更改一个条形(bar)的颜色.突出一个条形(bar)的颜色 目录
- html 改变文本框字体颜色,CSS更改文本框的字体颜色
我已搜索和搜索,但不能很好地得到这个权利.我在我的网站上有一个文本框,在我的CSS/HTML中,我将它定义为一个类,就像其他任何东西一样,并给它一个背景图像没有问题.我决定我需要改变字体颜色,但不管我 ...
- c语言水平制表符作用,C语言课:VC6.0中水平制表符和退格符的进一步说明
关于VC6.0中水平制表符'\t'和退格符'\b' 的进一步说明 (1)使用printf命令输出1个水平制表符'\t',则在荧幕上打印长度为8个空格的表位,该表位的起点光标位置是每行开头或上一个表位结 ...
- [转贴]从零开始学C++之STL(二):实现一个简单容器模板类Vec(模仿VC6.0 中 vector 的实现、vector 的容量capacity 增长问题)...
首先,vector 在VC 2008 中的实现比较复杂,虽然vector 的声明跟VC6.0 是一致的,如下: C++ Code 1 2 template < class _Ty, cla ...
- 在VC6.0中使用GDI+的两种办法
朱金灿 GDI+是GDI的升级版本.在VC6.0中并没有配备GDI+的相关文件.那么如何在VC6.0使用GDI+呢?我从网上搜索了一些资料,并结合自己的使用,总结出一下两种方法.下面我各建一个MFC工 ...
- html下拉菜单换背景颜色,如何在select框下拉菜单中更改蓝色突出显示的颜色
如何在select框下拉菜单中更改蓝色突出显示的颜色 如何更改此下拉菜单中的蓝色突出显示? 链接到select框演示 这是代码: Select an OptionOption 1Option 2 如果 ...
- 在VC6 0中使用GDI+的两种办法
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 朱金灿 ...
- MATLAB如何采用0~1的RGB值设置字体颜色?
Problem: 在MATLAB中,如何采用0~1的RGB值设置字体颜色? 目前做一个GUI,遇到动态改变字体颜色的这点需求,而且变为自己想要的颜色 这样会带来两个小问题: 不能采用预设颜色值的方式实 ...
最新文章
- oc引导win方法_[OC更新]机械革命10代标压稳定版更新
- 网络安全习惯_健康习惯,确保良好的网络安全
- 软件——机器学习与Python,Python3的输出与输入
- 查看h3c服务器raid信息,h3c 服务器 raid配置
- C++ typedef小结(转载)
- hdu1426 Sudoku Killer
- sqlite3 not found问题解决方法
- 线段树相关(研究总结,线段树)
- mysql查看表空间占用情况
- python ffmpeg直播_python+ffmpeg视频并发直播压力测试
- matlab的基本语法规则_MATLAB语法规则
- PyCharm常用配置和常用插件
- 某大厂算法工程师面试题详解,问题+答案
- 2003- cant connect to MYSQL server on localhost(10061)
- 摘果子问题(聚沙成塔问题)
- java魂斗罗_向经典致敬--跟我用Java写魂斗罗
- Python字符串格式化
- 基于RT-Thread的光照强度传感器BH1750FVI 软件包
- 逍遥 android adb,逍遥模拟器 Android adb shell getprop获取系统信息
- 大龄程序猿的出路在哪里