对话框与其控件的颜色
来源:互联网 发布:大数据语言学 编辑:程序博客网 时间:2024/04/29 17:49
要改变对话框的一般颜色,可以在C***App的InitInstance函数里加入如下代码:
SetDialogBkColor(RGB(0,255,255),RGB(255,0,0));//背景青蓝、文字红色
但是这样不能改变对话框中的图形控件的颜色;
每个控件在dialog中都是一个窗口,当要绘制控件时,会发出一个WM_CTLCOLOR消息给它的父窗口(对话框本身).消息映射及响应函数如下:
ON_WM_CRLCOLOR() //反映WM_CTLCOLOR消息
afx_msg HBRUSH CWnd::OnCrlColor(CDC* pDC,CWnd* pWnd,UINT nCtlColor);
//
nCtlColor类型:
CTLCOLOR_DLG对话框本身,不含有所有的控件
CTLCOLOR_STATIC 所有包含static text控件的设置(也包括无效的edit box、combo box的eidt box)
CTLCOLOR_EDIT edit box与combo box的eidt box部分
CTLCOLOR_LIST list box与combo box的edit box部分
CTLCOLOR_SCROLLBAR Scroll bar的空白区
我们也可以单独改变某一个控件的颜色.OnCtrlColor函数的pWnd成员变量是各控件的窗口指针,以pWnd->GetDlgCtrlID()可以获得调用此函数的控件ID,将它与已知ID比较,就可以改变这个控件的颜色。另外一个作法是比较pWnd;例如:如果一个edit box控件的成员变量m_edit1被声明为CEdit类,那么把m_edit1.m_hWnd与pWnd->m_hWnd比较,也可以知道是哪个控件.
下面是一个例子:
头文件中
CBrush m_brushYellow;
CBrush m_brushRed;
构造函数中
m_brushYellow.CreateSolidBrush(RGB(255, 255, 0));
m_brushRed.CreateSolidBrush(RGB(255, 0, 0));
HBRUSH CYourDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if(nCtlColor == CTLCOLOR_EDIT)//所有EDIT
{
pDC->SetBkMode(TRANSPARENT);
hbr = m_brushYellow;
}
if(nCtlColor == CTLCOLOR_DLG)//对话框
{
hbr = m_brushRed;
}
if(pWnd->GetDlgCtrlID() == IDC_YOURCTRL)//某个特定控件,BUTTON除外
{
pDC->SetBkMode(TRANSPARENT);
hbr = m_brushYellow;
}
return hbr;
}
这样就可以了。
- 对话框与其控件的颜色
- 对话框与其控件的颜色
- 对话框与其控件的颜色,字体的设置
- 对话框与其控件的颜色,字体的设置
- [转]对话框与其控件的颜色,字体的设置
- vc 根据字体对话框和颜色对话框设置控件里的字体和颜色
- 对话框背景颜色和图片的设置,对话框标题和控件颜色设置
- android自动设置当前ImageView控件的颜色与其背景色相反
- 关于设置对话框的背景颜色,和设置控件的字体颜色或背景颜色
- 关于设置对话框的背景颜色,和设置控件的字体颜色或背景颜色
- 关于设置对话框的背景颜色,和设置控件的字体颜色或背景颜色VC++
- 改变对话框上的控件的背景与颜色
- 如何设置对话框、控件的背景色、文字颜色
- VC中如何改变对话框中控件的颜色
- 关于对话框中static文本控件的颜色问题
- 对话框和控件的背景和颜色定制
- 修改对话框picture控件背景颜色的方法
- MFC对话框中控件字体颜色的设置
- 关于 Norton 的 Symantec Antivirus 不能更新的问题
- Java, Axis,Oracle,Tomcat 等 环境变量
- java 面试诉说苦恼
- Windows CE 内存管理
- 获取当前系统的语言种类
- 对话框与其控件的颜色
- [转]总结开发中的19个问题+若干问题
- windows mobile 程序的打包过程
- 模式识别(
- [C++]C++中的引用(转)
- 在指定的窗口指定的区域绘制指定的BMP图片
- Java中GUI图形用户界面
- 用Sync4J和SCTS搭建一个OMA DM的学习环境
- 快照方式枚举 ProcessID