请问怎么样改变对话框背景颜色(所有对话框)

raylin 2009-04-22 11:07:58
请问怎么样改变对话框背景颜色(所有对话框)的,不是单独一个对话框。谢谢。
...全文
170 7 打赏 收藏 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
pornographer 2009-04-22
  • 打赏
  • 举报
回复
OnCtlColor不能贴图吧
yqlhust 2009-04-22
  • 打赏
  • 举报
回复
VC++6.0可以用楼上的方法,VS.NET的话没有SetDialogBkColor函数,要想改变对话框背景颜色,可以为所有对话框类添加WM_CTLCOLOR消息函数,然后在里面添加代码如下:
HBRUSH CMyDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

// TODO: 在此更改 DC 的任何属性
if(nCtlColor==CTLCOLOR_EDIT) //改变编辑框背景颜色
{
//pDC->SetBkMode(TRANSPARENT);
pDC->SetTextColor(RGB(0,0,0));
pDC->SetBkColor(RGB(160,189,239));
HBRUSH b=CreateSolidBrush(RGB(160,189,239));
return b;
}
else if(nCtlColor==CTLCOLOR_STATIC)//改变静态文本框背景颜色
{
pDC->SetTextColor(RGB(0,0,0));
pDC->SetBkColor(RGB(0,133,239));
HBRUSH b=CreateSolidBrush(RGB(0,133,239));
return b;
}
else if(nCtlColor==CTLCOLOR_DLG)//改变对话框背景颜色
{
pDC->SetTextColor(RGB(0,0,0));
pDC->SetBkColor(RGB(160,180,220));
HBRUSH b=CreateSolidBrush(RGB(100,200,200));
return b;
}


// TODO: 如果默认的不是所需画笔,则返回另一个画笔
return hbr;
}
zwicker 2009-04-22
  • 打赏
  • 举报
回复
派生dialog,然后在这个类中添加图片为背景,需要用这个背景的对话框,就用这个类
raylin 2009-04-22
  • 打赏
  • 举报
回复
晕死,谢谢几位,问题问错了,我是想加一张图片作为所有对话框的背景。
Ryanwen 2009-04-22
  • 打赏
  • 举报
回复
调用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();
…
}
此方法是将改变应用程序中所有的对话框颜色,并不能针对某一个指定的对话框。
#Page# 2009-04-22
  • 打赏
  • 举报
回复
不用,在onpaint搞就可以了

else
{
// CRect rect;
// CPaintDC dc(this);
// GetClientRect(rect);
// dc.FillSolidRect(rect,RGB(0xff,0xff,0xff)); //设置为绿色背景
CDialog::OnPaint();
}
healer_kx 2009-04-22
  • 打赏
  • 举报
回复
那你应该从CDialog派生出来一个自己的基类,
SetDialogBkColor(RGB(0,0,255),...
内容概要:本文提出并实现了一种基于Transform-KAN混合架构的电力负荷预测模型,旨在通过融合Transformer在长序列建模中的注意力机制优势与Kolmogorov-Arnold Network(KAN)在函数逼近方面的高精度非线性拟合能力,显著提升负荷预测的准确性与鲁棒性。研究系统阐述了模型的整体结构设计、输入特征工程、训练流程及关键超参数配置,并利用真实电力系统历史数据进行多步预测实验,验证了该方法在处理非线性、非平稳负荷序列时的优越性能。重点探讨了新型神经网络结构在时间序列预测任务中的创新应用,为复杂电力系统负荷的精准预估提供了有效的技术路径。; 适合人群:具备一定编程基础和机器学习知识,从事电力系统、能源管理或时间序列预测相关研究的研发人员,尤其适合工作1-3年希望深入理解前沿预测模型的技术人员。; 使用场景及目标:①应用于电网调度、能源管理系统中对未来电力负荷的精确预测;②探索Transformer与KAN等新兴神经网络模型在实际工业场景中的融合设计与实现方法;③为学术研究提供可复现的高性能负荷预测基准方案。; 阅读建议:此资源以Python代码实现为核心,强调理论与实践相结合,建议读者在学习过程中仔细研读模型架构细节,动手运行并调试代码,结合实验结果深入理解各模块的作用与优化策略,从而全面掌握该先进预测方法的设计精髓。

15,976

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧