VC/MFC 请问如何把窗体刷回原来的颜色?

有一个窗体,两个按钮,一个(A)按钮把窗体刷成绿色另外一个按钮(B)想把窗体恢复原来的颜色voidCteclolDlg::OnBnClickedButton1()//刷成... 有一个窗体,
两个按钮,一个(A)按钮把窗体刷成绿色
另外一个按钮(B)想把窗体恢复原来的颜色

void CteclolDlg::OnBnClickedButton1() //刷成绿色
{
// TODO: 在此添加控件通知处理程序代码
CBrush lkwbrush(RGB(0,255,0));
CClientDC dc(this);
CRect rcWnd;
GetClientRect(rcWnd);
dc.FillRect(rcWnd,&lkwbrush);
}

void CteclolDlg::OnBnClickedButton2()
{
}

Button2应该如何写变回原来窗口的默认颜色?
展开
 我来答
测绘地理信息
2010-05-08 · TA获得超过2204个赞
知道小有建树答主
回答量:516
采纳率:100%
帮助的人:470万
展开全部
你用的是对话框应用程序吧,按你上面的方法会把对话框上的控件也用填充色覆盖掉。用下面的方法就不会了:

1、定义一个成员变量 m_clrBK,用来保存当前对话框的背景颜色;
2、在OnInitDialog函数中添加如下的代码,初始化对话框的颜色为系统默认的颜色:
m_clrBK = GetSysColor(COLOR_3DFACE);
3、在OnPaint函数的else分支中添加如下的代码,设置对话框的背景颜色:
CRect rect;
CPaintDC dc(this);
GetClientRect(&rect);
dc.FillSolidRect(&rect, m_clrBK);
4、在两个按钮的消息函数中分别这样写就行了:
void CteclolDlg::OnBnClickedButton1() // 刷成绿色
{
m_clrBK = RGB(0,255,0);
Invalidate();
}
void CteclolDlg::OnBnClickedButton2() // 还原颜色
{
m_clrBK = GetSysColor(COLOR_3DFACE);
Invalidate();
}
督诺0GMffd
2010-05-15 · TA获得超过2013个赞
知道大有可为答主
回答量:3770
采纳率:0%
帮助的人:2057万
展开全部
用同样的方法。
CBrush lkwbrush(RGB(0,0,0));
CClientDC dc(this);
CRect rcWnd;
GetClientRect(rcWnd);
dc.FillRect(rcWnd,&lkwbrush);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cambria
2010-05-08 · TA获得超过309个赞
知道小有建树答主
回答量:204
采纳率:0%
帮助的人:264万
展开全部
给你个思路吧,这电脑上vc,vs都没有
要么你在填充之前先得到窗口的画刷句柄,然后保存在一个全局变量里,等到你想填充回去的时填充之前保存的那个画刷句柄,具体的实现肯定是Get函数里的某个,你自己试试,查查msdn。
要么你可以得到对话框的颜色,应该是dc->GetBkColor();或者GetDlgBkColor你具体查查msdn,或者干脆 HBRUSH hBrush=(HBRUSH)GetClassLong(hWnd,GCL_HBRBACKGROUND);应该也行,然后填充到矩形框里。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
望穿秋水待伊人
2010-05-08 · TA获得超过644个赞
知道小有建树答主
回答量:708
采纳率:100%
帮助的人:797万
展开全部
定义一个全局CBrush指针,用下面的这个
CBrush* pOldBrush=SelectObject( CBrush* pBrush );
第二个按钮响应中调用SelectObject( pOldBrush );
再次进行填 充就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shangqt
2010-05-08 · TA获得超过159个赞
知道小有建树答主
回答量:291
采纳率:0%
帮助的人:118万
展开全部
CteclolDlg::RedrawWindow();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式