社区
界面
帖子详情
关于改变对话框背景色的问题!
kainzgy
2004-08-23 05:26:27
在一个基于对话框的应用程序中,我在应用中写了以下代码:
SetDialogBkColor(RGB(160,180,220),RGB(0,0,0));
结果所有的对话框都成了这种颜色,我想要的是不同的对话框有不同的颜色,我要如何设置,在哪里设置呢??
...全文
319
5
打赏
收藏
关于改变对话框背景色的问题!
在一个基于对话框的应用程序中,我在应用中写了以下代码: SetDialogBkColor(RGB(160,180,220),RGB(0,0,0)); 结果所有的对话框都成了这种颜色,我想要的是不同的对话框有不同的颜色,我要如何设置,在哪里设置呢??
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
szliuy
2005-05-04
打赏
举报
回复
mark
nineclock
2004-08-23
打赏
举报
回复
楼上都是正解,偶UP
chqu18
2004-08-23
打赏
举报
回复
OnCtlColor (CDC* pDC, CWnd* pWnd, UINT nCtlColor),WM_CTLCOLOR消息。
在这个函数中返回你想要的颜色刷子,这样你要画哪个对话框都可以了。
Kudeet
2004-08-23
打赏
举报
回复
你那样用就是那效果了
改背景色
内容:改变对话框的背景色
方法一:调用CWinApp类的成员函数SetDialogBkColor来实现。
---- 其中函数的第一个参数指定了背景颜色,第二个参数指定了文本颜色。下面的例子是将应用程序对话框设置为蓝色背景和红色文本,步骤如下:
---- ① 新建一个基于Dialog的MFC AppWizard应用程序ExampleDlg。
---- ② 在CExampleDlgApp ::InitInstance()中添加如下代码:
BOOL CExampleDlgApp: : InitInstance ( )
{
… CExampleDlgDlg dlg;
m_pMainWnd = &dlg;
//先于DoModal()调用,将对话框设置为蓝色背景、红色文本
SetDialogBkColor(RGB(0,0,255),RGB(255,0,0));
int nResponse = dlg.DoModal();
…}
---- 编译并运行,此时对话框的背景色和文本色已发生了改变。值得注意的是:在调用DoModal()之前必须先调用SetDialogBkColor,且此方法是将改变应用程序中所有的对话框颜色,并不能针对某一个指定的对话框。
---- 方法二:重载OnPaint(),即WM_PAINT消息。有关代码如下(以上例工程为准):
void CExampleDlgDlg::OnPaint()
{
if (IsIconic())
… else
{
CRect rect;
CPaintDC dc(this);
GetClientRect(rect);
dc.FillSolidRect(rect,RGB(0,255,0)); //设置为绿色背景
CDialog::OnPaint();
}
---- 方法三:重载OnCtlColor (CDC* pDC, CWnd* pWnd, UINT nCtlColor),即WM_CTLCOLOR消息。具体步骤如下(以上例工程为准):
---- ①在CExampleDlgDlg的头文件中,添加一CBrush的成员变量:
class CExampleDlgDlg : public CDialog
{...
protected:
CBrush m_brush;
...
};
---- ②在OnInitDialog()函数中添加如下代码:
BOOL CExampleDlgDlg::OnInitDialog()
{
...
// TODO: Add extra initialization here
m_brush.CreateSolidBrush(RGB(0, 255, 0)); // 生成一绿色刷子
...
}
---- ③利用ClassWizard重载OnCtlColor(…),即WM_CTLCOLOR消息:
HBRUSH CExampleDlgDlg::OnCtlColor
(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
/*
** 这里不必编写任何代码!
**下行代码要注释掉
** HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
*/
return m_brush; //返加绿色刷子
}
---- 方法四:还是重载OnCtlColor (CDC* pDC, CWnd* pWnd, UINT nCtlColor),即WM_CTLCOLOR消息。具体步骤如下(以上例工程为准):
---- 步骤①、②同上方法三中的步骤①、②。
---- 步骤③利用ClassWizard重载OnCtlColor(…)(即WM_CTLCOLOR消息)时则有些不同:
HBRUSH CExampleDlgDlg::OnCtlColor
(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
//在这加一条是否为对话框的判断语句
if(nCtlColor ==CTLCOLOR_DLG)
return m_brush; //返加绿色刷子
return hbr;
}
---- 编译并运行即可。
newsb
2004-08-23
打赏
举报
回复
在响应对话框的WM_CTRLCOLOR消息,返回你想要的背景刷子
VC6
对话框
背景色
在Microsoft Visual C++ 6.0(简称VC6)中,开发Windows应用程序时,我们可能会遇到需要自定义
对话框
背景色
的需求。
对话框
是用户与应用程序交互的重要界面元素,其默认
背景色
通常为系统标准颜色,但有时为了个性化...
改变
MFC
对话框
背景色
、控件内的字体
在MFC应用中,
改变
对话框
的
背景色
和控件内字体的颜色是一项常见的需求,这可以通过处理WM_CTLCOLOR消息来实现。这个消息在Windows消息系统中被用来通知应用程序为特定控件设置画刷,从而
改变
其背景颜色。在MFC中,...
10
改变
对话框
的
背景色
.rar_
背景色
在Windows操作系统中,
对话框
是用户与应用程序...根据你的项目需求和所使用的开发工具,选择合适的方法即可实现
对话框
背景色
的自定义。在实际操作时,记得考虑颜色搭配、用户体验等因素,以确保界面美观且易于使用。
改变
对话框
背景颜色
"
改变
对话框
背景颜色" 本文将详细介绍如何修改
对话框
的背景颜色,以VC为开发环境。通过重写
对话框
的OnPaint函数,我们可以实现
对话框
背景颜色的修改。 首先,需要理解
对话框
的绘制过程。在VC中,
对话框
的绘制是...
如何
改变
对话框
背景
综上所述,"如何
改变
对话框
背景"涉及到MFC中的
对话框
自定义绘图、消息处理和用户交互。通过覆盖默认的绘图函数,我们可以轻松实现
对话框
背景颜色的更改,从而提升应用程序的视觉效果和用户体验。在实际项目中,这种...
界面
15,980
社区成员
115,867
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章