FAQ:WinAPI VCPP:фон окна

Материал из Весельчак У

Перейти к: навигация, поиск

Как сделать, чтобы у окна был черный фон?

Нужно переопределить обработчик сообщения WM_CTLCOLOR - OnCtlColor():

// глобальная переменная или член класса CMyDlg,
// инициализированный в OnInitDialog()
CBrush br(RGB(0, 0, 0));
 
HBRUSH CMyDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CMyDlg::OnCtlColor(pDC, pWnd, nCtlColor);
 
// фон диалога (или View)
if (nCtlColor == CTLCOLOR_DLG)
{
return (HBRUSH)br;
}
 
// фон элементов SCtatic, лежащих на форме (если нужно)
if (nCtlColor == CTLCOLOR_STATIC)
{
// делаем фон текста статика прозрачным
pDC->SetBkMode(TRANSPARENT);
return (HBRUSH)br;
}
 
return hbr;
}