Mfc Dialog更改颜色按钮

时间:2018-01-08 23:45:30

标签: button colors mfc dialog

感谢您的帮助解决我的问题 我尝试使用visual studio 2010添加一个可以将对话框的背景更改为不同颜色的按钮,但我认为这可能是错误的方法

    void PainterDlg::OnBnClickedButton7()
    {
    CBrush m_brush; 
    m_brush.CreateSolidBrush(RGB(255, 255, 255));
    return m_brush;
    }

或者看起来应该是这样的

    void PainterDlg::OnBnClickedButton7()
    {
    CBrush m_brush; 
    m_brush.CreateSolidBrush(RGB(255, 255, 255));
    return m_brush;
    }

这两种方式对我都不起作用 谢谢提前

2 个答案:

答案 0 :(得分:1)

使用CButton并不容易。 (你必须自己在OnDrawItem,OnCtlColor中绘制)

更简单的方法是使用CMFCButton。 为Button添加成员变量(使用MFC-ClassWizzard)并将其更改为CMFCButton。 这是一个以绿色更改颜色按钮的示例。

void CColorButtonSimpleDlg::OnBnClickedMyColorbtn()
{
  // add a Member Variable for your Button
  // Change it to CMFC Button

  // CMFCButton m_myBtn;     declared in Header-File  *.h 
  m_myBtn.EnableWindowsTheming(FALSE);      // (important!)
  m_myBtn.SetFaceColor(RGB(0, 255, 0));     // Change to your desired Background Color
  m_myBtn.SetTextColor(RGB(255, 255, 255)); // Change it to your desired Foreground Color

}

答案 1 :(得分:-1)

Nvm找到了它

    int r,b,g; 
    r=rand()%255;
    b=rand()%255;
    g=rand()%255;
    CBrush myb;
    myb.CreateSolidBrush(RGB(r,b,g));
    dc2.FillRect(&rect,&myb);