Вопрос:

Mfc Dialog изменить цвет кнопки

button colors mfc dialog

1967 просмотра

2 ответа

12 Репутация автора

Спасибо за вашу помощь В решении моей проблемы я пытаюсь добавить кнопку, которая может изменить фон диалогового окна на другой цвет, я использую 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;
    }

оба пути не работают для меня заранее спасибо

Автор: Hai Vaknin Источник Размещён: 08.01.2018 11:45

Ответы (2)


-1 плюса

12 Репутация автора

НВМ нашел это

    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);
Автор: Hai Vaknin Размещён: 09.01.2018 12:12

1 плюс

463 Репутация автора

Это не так просто с CButton. (вы должны нарисовать все сами в OnDrawItem, OnCtlColor)

Более простой способ - использовать CMFCButton. Добавьте переменную члена для вашей кнопки (с 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

}

Автор: Tom Tom Размещён: 09.01.2018 11:24
Вопросы из категории :
32x32