как установить кнопку BackColor? - PullRequest
0 голосов
/ 03 мая 2011

Как изменить цвет фона элемента управления кнопки, созданного с помощью CreateWindow ?

Ответы [ 2 ]

1 голос
/ 03 мая 2011

Windows API больше не предлагает много опций для настройки внешнего вида стандартных элементов управления.

  • WM_CTLCOLORBTN может обрабатываться родительским окном кнопки, чтобы управлять некоторыми аспектами внешнего вида кнопок, но кнопки uxtheme используют только кисть фона, чтобы закрасить область позади кнопки. Внешний вид лица определяется текущей темой.

  • WM_DRAWITEM также может обрабатываться родительским окном путем установки стиля BS_OWNERDRAW для кнопки. Это позволяет родительскому окну полностью заменить обычную логику рисования кнопок.

0 голосов
/ 04 мая 2011

Чтобы управлять цветом элементов управления в вашем диалоговом окне, добавьте обработчик к сообщению WM_CTLCOLOR в вашем диалоговом классе.
Затем вам нужно будет добавить несколько таких строк:

HBRUSH CYourDialogClass::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
    HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

    if (pWnd->GetDlgCtrlID() == IDC_OF_YOUR_BUTTON)
    {
        pDC->SetBkColor (RGB(0, 0, 255)); // BLUE color for background
        pDC->SetTextColor (RGB(255, 0, 0)); // RED color for text
    }

    return hbr;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...