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;
}