Я делаю диалог средствами Windows. В диалоге есть Picture Control типа OwnerDraw c идентификатором IDC_COLOR_DISPLAY.
Для того, чтобы отрисовывать его с моим цветом, я добавил в MESSAGE MAP (мой диалог унаследован от CDialogImpl) следующий код:
if(uMsg==WM_CTLCOLORSTATIC && (HWND)lParam==(HWND)GetDlgItem(IDC_COLOR_DISPLAY))
{
HBRUSH T = CreateSolidBrush (RGB(_r(ResultColor),_g(ResultColor),_b(ResultColor)));
SetBkColor((HDC)wParam,RGB(_r(ResultColor),_g(ResultColor),_b(ResultColor)));
return (BOOL)(T);
}
где ResultColor — DWORD, содержащий информацию о цвете (в частности, при инициализации диалога выставляется в 0,0,0).
Однако при запуске диалога ничего там, где должен быть закрашенный прямоугольник, не отображается.
Что я делаю неправильно?
Добавлена разметка и табуляция — Кодт
08.11.07 13:45: Перенесено модератором из 'C/C++. Прикладные вопросы' — Кодт