Задать цвет диалога

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
diesell
Сообщения: 4
Зарегистрирован: 21 сен 2005, 16:15
Контактная информация:

Недавно начал изучать Visual Studio Net 2005, никак не могу установить цвет для страниц которые вот так создаются:

Код: Выделить всё


BOOL CVendorApp::InitInstance()
{
	SHInitExtraControls();
	CVendorDlg dlg;
	CMainSheet sheet(_T("Vendor 1"));
	CMainDlg maindlg;
	CClientsDlg clientsdlg;
	CGoodsDlg goodsdlg;
	CDocsDlg docsdlg;
	CSetupDlg setupdlg;
	sheet.AddPage(&maindlg);
	sheet.AddPage(&clientsdlg);
	sheet.AddPage(&goodsdlg);
	sheet.AddPage(&docsdlg);
	sheet.AddPage(&setupdlg);
         sheet.DoModal();
seet -CPropertySheet
остальные CPropertyPage
Раньше, в самом начале функции работала SetDialogBkColor, а сейчас не работает. Подскажите что делать.
Аватара пользователя
WinMain
Сообщения: 929
Зарегистрирован: 14 янв 2005, 10:30
Откуда: Москва
Контактная информация:

Чтобы закрасить окно диалога нужным цветом, для этого надо перехватить и обработать сообщение WM_CTLCOLORDLG. В качестве возвращаемого значения передаётся дескриптор кисти, которой будет закрашиваться поверхность окна.
diesell
Сообщения: 4
Зарегистрирован: 21 сен 2005, 16:15
Контактная информация:

Ничего не получается, не могли бы вы кусочком подобного кода поделиться?
Аватара пользователя
WinMain
Сообщения: 929
Зарегистрирован: 14 янв 2005, 10:30
Откуда: Москва
Контактная информация:

Пример, как окно диалога закрашивается цветом всплывающей подсказки (по умолчанию он ярко-жёлтый).

Код: Выделить всё

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

	// TODO:  Change any attributes of the DC here

	// TODO:  Return a different brush if the default is not desired
	return ::GetSysColorBrush(COLOR_INFOBK);
}
Ответить