社区
界面
帖子详情
如何改变对话框的背景色
yashi
2003-12-12 10:24:42
用mfc做一个基于对话框的程序,现在想改变该对话框的背景色,该怎么做?
...全文
360
9
打赏
收藏
如何改变对话框的背景色
用mfc做一个基于对话框的程序,现在想改变该对话框的背景色,该怎么做?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
checkyvc6
2003-12-12
打赏
举报
回复
首先定义和创建用来填充对话框背景色的画刷
在头文件中定义画刷对象
CBrush m_bkBrush;
在对话框的初始化函数中创建画刷
m_bkBrush.CreateSolidBrush(RGB(0,128,255));
HBRUSH CYourDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
switch(nCtlColor) {
case CTLCOLOR_STATIC:
pDC->SetBkMode(TRANSPARENT);
case CTLCOLOR_EDIT:
pDC->SetBkMode(TRANSPARENT);
case CTLCOLOR_DLG:
return static_cast<HBRUSH>(m_bkBrush.GetSafeHandle());
}
return CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
}
这种方法可以具体控制那个控件显示什么样的北京色和字体的颜色通过在前面加上
if(pWnd->GetDlgCtrlId() ==IDC_EDIT1)
{
//改变Pdc的属性
}
yashi
2003-12-12
打赏
举报
回复
哦,我用的是vc.net刚查了msdn,里面关于CWinApp::SetDialogBkColor只有一句话:
This function is obsolete.
看来在vc7.0里面只能用第二个方法了。
vcforever
2003-12-12
打赏
举报
回复
void SetDialogBkColor(
COLORREF clrCtlBk = RGB(192, 192, 192),//对话框的背景色
COLORREF clrCtlText = RGB(0, 0, 0) //显示文本的背景色
);
yashi
2003-12-12
打赏
举报
回复
1、在CXXApp.cpp文件中的InitInstance()函数中用
SetDialogBkColor();来设置程序中所有对话框的背景色
我用此方法,无效,是不是还有其它注意的地方。
2。在要改变背景色的对话框中重载WM_CTLCOLOR消息,在消息处理函数中如下处理
首先定义和创建用来填充对话框背景色的画刷
是有效的,但是会发生运行错误。什么原因呢?
modena
2003-12-12
打赏
举报
回复
OnEraseBkgnd中开始增加:
CRect rtClient;
GetClientRect(&rtClient);
pDC->PatBlt(0,0,rtClient.Width(),rtClient.Height(), WHITENESS);
return TRUE;
vcforever
2003-12-12
打赏
举报
回复
1、在CXXApp.cpp文件中的InitInstance()函数中用
SetDialogBkColor();来设置程序中所有对话框的背景色
2、在要改变背景色的对话框中重载WM_CTLCOLOR消息,在消息处理函数中如下处理
首先定义和创建用来填充对话框背景色的画刷
在头文件中定义画刷对象
CBrush m_bkBrush;
在对话框的初始化函数中创建画刷
m_bkBrush.CreateSolidBrush(RGB(0,128,255));
HBRUSH CYourDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
switch(nCtlColor) {
case CTLCOLOR_STATIC:
pDC->SetBkMode(TRANSPARENT);
case CTLCOLOR_EDIT:
pDC->SetBkMode(TRANSPARENT);
case CTLCOLOR_DLG:
return static_cast<HBRUSH>(m_bkBrush.GetSafeHandle());
}
return CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
}
sinhighly
2003-12-12
打赏
举报
回复
OnPaint
里画背景
zyleon
2003-12-12
打赏
举报
回复
调用CWinApp : : SetDialogBkColor可以改变所有应用程序的背景颜色。第一个参数指定了背景颜色,第二个参数指定了文本颜色。下例将应用程序对话设置为蓝色背景和黄色文本。
BOOL CSampleApp : : InitInstance ( )
{
…
//use blue dialog with yellow text .
SetDialogBkColor (RGB (0, 0, 255 ), RGB ( 255 , 255 , 0 ) ) ;
…
}
Developerljm
2003-12-12
打赏
举报
回复
BOOL CApp1View::PreCreateWindow(CREATESTRUCT& cs)
{
if (!CWnd::PreCreateWindow(cs))
return FALSE;
cs.dwExStyle |= WS_EX_CLIENTEDGE;
cs.style &= ~WS_BORDER;
cs.lpszClass = AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW|CS_DBLCLKS,
::LoadCursor(NULL, IDC_ARROW), HBRUSH(RGB(0x2,0x0,0x0)+1), NULL);//
return TRUE;
}
改变
对话框
的默认
背景色
本文介绍两种在MFC
对话框
中修改背景颜色的方法。第一种是在OnPaint()函数中填充
背景色
;第二种是在WM_CTLCOLOR消息处理函数OnCtlColor()中返回自定义的画笔。通过具体步骤和代码示例,展示了如何实现
对话框
背景颜色的
改变
。
VC
改变
对话框
的
背景色
的方法(4种)
本文介绍了四种
改变
MFC
对话框
背景色
的方法:通过CWinApp的SetDialogBkColor函数,重载OnPaint消息,以及两种重载OnCtlColor消息的方式,详细讲解了每种方法的实现步骤和注意事项。
VC++ 中
改变
对话框
及相关控件的
背景色
(MFC)
本文介绍了在VC++ MFC中
改变
对话框
和控件
背景色
的四种方法:1) 使用CWinApp的SetDialogBkColor函数;2) 重载OnPaint()处理WM_PAINT消息;3) 重载OnCtlColor()处理WM_CTLCOLOR消息;4) 结合OnCtlColor()和条件判断
改变
特定控件颜色。提供了详细的代码示例和注意事项。
改变
对话框
的
背景色
本文介绍了四种修改
对话框
背景颜色的技术:通过调用SetDialogBkColor函数、重载OnPaint方法、重载OnCtlColor消息以及使用OnEraseBkgnd函数。这些方法分别适用于不同的场景和需求。
VC++
改变
对话框
的
背景色
和VC++制作伸展自如、收缩随意的
对话框
本文介绍在VC++中通过多种方法
改变
对话框
背景颜色的技术,并演示如何制作能够自由伸展和收缩的
对话框
,包括调整
背景色
、重载绘图函数及响应用户操作。
界面
15,977
社区成员
115,866
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章