怎么改变窗体的颜色呢?

yeyuanzhi2000 2008-04-01 12:23:43
怎么改变窗体的颜色呢?最好贴出源码,谢谢!!
...全文
125 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
djlxue 2008-04-01
  • 打赏
  • 举报
回复
最后要返回HBRUSH hbr
yeyuanzhi2000 2008-04-01
  • 打赏
  • 举报
回复
先新建一个画刷
public:
CBrush m_brush;

在OnCtlColor(继承下来的)函数返回该画刷
HBRUSH CPaAlarmDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd,nCtlColor);

m_brush.CreateSolidBrush(RGB(255,0,0));
return m_brush;
}

颜色是改变了,但这段代码运行时出现错误,为什么?
iyranly 2008-04-01
  • 打赏
  • 举报
回复
添加WM_ERASEBKGND事件,OnEraseBkgnd(CDC* pDC)

 CBrush brush(RGB (250,250,250));
CBrush* pOldBrush = pDC->SelectObject (&brush);
CRect rcClip;
pDC->GetClipBox(&rcClip);
pDC-> PatBlt(rcClip.left , rcClip.top ,rcClip.Width() , rcClip.Height() ,PATCOPY );
pDC-> SelectObject (pOldBrush );
return TRUE;
naixian1983 2008-04-01
  • 打赏
  • 举报
回复
在InitInstance()里加入SetDialogBkColor()

SetDialogBkColor(RGB(220,220,220),RGB(0,0,0));
烂番 2008-04-01
  • 打赏
  • 举报
回复
你是要改变某个控件的背景色吧??而不是窗体的背景色,,,,,,,,

单单上面的代码是没问题的,
只是 m_brush.CreateSolidBrush(RGB(255,0,0));
HBRUSH hBr =CreateSolidBrush(RGB(255,0,0));
return (HBRUSH)hBr;

用局部变量就OK了吧??

如果还有错 那就不一定是这个响应函数出错了
yeyuanzhi2000 2008-04-01
  • 打赏
  • 举报
回复
返回HBRUSH hbr还更出错

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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