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应该如何写变回原来窗口的默认颜色? 展开
两个按钮,一个(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应该如何写变回原来窗口的默认颜色? 展开
1个回答
2013-07-12
展开全部
你用的是对话框应用程序吧,按你上面的方法会把对话框上的控件也用填充色覆盖掉。用下面的方法就不会了:
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();
}
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();
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询