FAQ:WinAPI VCPP:фон окна — различия между версиями

Материал из Весельчак У
Перейти к: навигация, поиск
(Новая: ===Как сделать, чтобы у окна был черный фон?=== Нужно переопределить обработчик сообщения WM_CTLCOLOR - OnCtlColor(...)
 
(нет различий)

Текущая версия на 15:34, 3 октября 2009

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

Нужно переопределить обработчик сообщения 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;
}