Страница 1 из 1

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

Добавлено: 20 окт 2005, 13:30
diesell
Недавно начал изучать 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, а сейчас не работает. Подскажите что делать.

Добавлено: 20 окт 2005, 15:40
WinMain
Чтобы закрасить окно диалога нужным цветом, для этого надо перехватить и обработать сообщение WM_CTLCOLORDLG. В качестве возвращаемого значения передаётся дескриптор кисти, которой будет закрашиваться поверхность окна.

Добавлено: 21 окт 2005, 10:57
diesell
Ничего не получается, не могли бы вы кусочком подобного кода поделиться?

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

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

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