Фон окна диалога
Окно диалога должно быть черным. А оно серое.
Подскажите, пожалуйста.
Вот так вызывается диалог:
DialogBox(hInstance, "START2", hwnd, Start2DlgProc);
Вот диалоговая процедура:
BOOL CALLBACK Start2DlgProc(HWND hDlg, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
static HBRUSH hBrush;
switch(iMsg) {
case WM_INITDIALOG:
hBrush = CreateSolidBrush(RGB(0, 0, 0));
return TRUE;
case WM_CTLCOLORDLG:
if ((hBrush != NULL)) {
SetBkColor((HDC)wParam, RGB(0, 0, 0));
return (BOOL)hBrush;
}
break;
case WM_COMMAND:
switch(wParam) {
case IDOK:
DeleteObject(hBrush);
EndDialog(hDlg, 0);
break;
}
return TRUE;
}
return FALSE;
}
Сам диалог описан в файле ресурсов вот так:
START2 DIALOG 100, 50, 150, 100
{
CTEXT "" ID_STATIC, 0, 0, 150, 100
}
Цитата:
Originally posted by Wooden
Не могу найти ошибку в своей программе.
Окно диалога должно быть черным. А оно серое.
Подскажите, пожалуйста.
Вот так вызывается диалог:
DialogBox(hInstance, "START2", hwnd, Start2DlgProc);
Вот диалоговая процедура:
BOOL CALLBACK Start2DlgProc(HWND hDlg, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
...
case WM_CTLCOLORDLG:
if ((hBrush != NULL)) {
SetBkColor((HDC)wParam, RGB(0, 0, 0));
return (BOOL)hBrush;
}
break;
...
}
Не могу найти ошибку в своей программе.
Окно диалога должно быть черным. А оно серое.
Подскажите, пожалуйста.
Вот так вызывается диалог:
DialogBox(hInstance, "START2", hwnd, Start2DlgProc);
Вот диалоговая процедура:
BOOL CALLBACK Start2DlgProc(HWND hDlg, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
...
case WM_CTLCOLORDLG:
if ((hBrush != NULL)) {
SetBkColor((HDC)wParam, RGB(0, 0, 0));
return (BOOL)hBrush;
}
break;
...
}
1. Убери SetBkColor(...)
2. DialogProc вообще-то должна возвращать INT_PTR.
Цитата:
Originally posted by Wooden
Не могу найти ошибку в своей программе.
Окно диалога должно быть черным. А оно серое.
Не могу найти ошибку в своей программе.
Окно диалога должно быть черным. А оно серое.
Я запустил Твой код, у меня окошко черное при черное. Все правильно написано (кроме замечаний Wooden'а)
Щас работает.
Заменил WM_CTLCOLORDLG на WM_CTLCOLORSTATIC.
Всем спасибо.