如何改变程序所有对话框背景颜色

徐蕴 2008-08-05 08:31:34
在VC6的时候使用SetDialogBkColor很方便,但是VS2005/2008的MFC已经废弃了这个函数。请教大家是否有另外的替代方案呢?如果使用OnCtlColor的话需要对每个对话框都如此处理,而且对于MessageBox似乎无法处理。谢谢。
...全文
197 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
candyice 2008-08-06
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 jyh_baoding 的回复:]
没用过,关注
[/Quote]
scq2099yt 2008-08-06
  • 打赏
  • 举报
回复
up
贪玩的老鼠 2008-08-06
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 jyh_baoding 的回复:]
没用过,关注
[/Quote]
jyh_baoding 2008-08-06
  • 打赏
  • 举报
回复
没用过,关注
徐蕴 2008-08-06
  • 打赏
  • 举报
回复
再顶一下,似乎微软也没有提供更简便的解决方法。
Walker-cheng 2008-08-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 chenyu2202863 的回复:]
这样的自由度更大

OnErase里也可以更改
[/Quote]
christxg 2008-08-05
  • 打赏
  • 举报
回复
up
cnzdgs 2008-08-05
  • 打赏
  • 举报
回复
可以试试用SetClassLongPtr重设GCLP_WNDPROC,在自己的WindowProc中处理WM_CTLCOLOR消息。
dzy102304506 2008-08-05
  • 打赏
  • 举报
回复
up
徐蕴 2008-08-05
  • 打赏
  • 举报
回复
谢谢大家,似乎确实没有一个特别简单的SetDialogBkColor的替代。OnEraseBkgnd不是特别完美,对话框上的控件的背景还是缺省的窗口颜色。
HuiChen 2008-08-05
  • 打赏
  • 举报
回复
从 CDialog 派生自己的对话框类,改变其背景颜色。所有对话框再从该类派生。
orcd 2008-08-05
  • 打赏
  • 举报
回复
up
chenyu2202863 2008-08-05
  • 打赏
  • 举报
回复
这样的自由度更大

OnErase里也可以更改
xuxingok 2008-08-05
  • 打赏
  • 举报
回复
自己派生MessageBox的对话框

15,980

社区成员

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

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