Цвет окна
CDC *dc;
dc = Window->GetDC();
dc->SetBkColor(0x00FF00);
Ноль эффекта. Все это в OnPaint. Я вот думаю, или чего в свойствах формы поменять, или я как-то DC криво юзаю. Кстати, если тут юзать SetPixel(...) по всей области - все работает.
Какие есть мнения?
Цитата:
Originally posted by HardMix
Задача сменить цвет окна класса дочернего CWnd через контекст устройства. Делаю так
CDC *dc;
dc = Window->GetDC();
dc->SetBkColor(0x00FF00);
Ноль эффекта. Все это в OnPaint. Я вот думаю, или чего в свойствах формы поменять, или я как-то DC криво юзаю. Кстати, если тут юзать SetPixel(...) по всей области - все работает.
Какие есть мнения?
Задача сменить цвет окна класса дочернего CWnd через контекст устройства. Делаю так
CDC *dc;
dc = Window->GetDC();
dc->SetBkColor(0x00FF00);
Ноль эффекта. Все это в OnPaint. Я вот думаю, или чего в свойствах формы поменять, или я как-то DC криво юзаю. Кстати, если тут юзать SetPixel(...) по всей области - все работает.
Какие есть мнения?
SetBkColor непомогает
Я делал так:
Цитата:
HBRUSH hBrush = CreateSolidBrush(colorSolidBrush);
SelectObject(hDC, hBrush);
POINT Size;// размер клиентской области окна
PatBlt(hDC, 0, 0, Size.x, Size.y, PATCOPY);
Это надо вставить в начале обработчика WM_PAINT или WM_ERASEBKGND
Цитата:
Originally posted by SeregaLBN
SetBkColor непомогает
SetBkColor непомогает
А ты, случайно, не знаешь - почему?
Цитата:
Originally posted by HardMix
А ты, случайно, не знаешь - почему?
А ты, случайно, не знаешь - почему?
Да SetBkColor вообще из другой оперы, он используется для заполнения пустых мест при выводе строк, штрих-пунктирных линий и т.д. Причем в зависимости от режима, установленного с помощью функции SetBkMode- TRANSPARENT = прозрачный, OPAQUE = непрозрачный. Так что от того, что ты там выставил цвет фона, у тебя весь DC им не закрасится
Цитата:
Originally posted by pavor
Да SetBkColor вообще из другой оперы, он используется для заполнения пустых мест при выводе строк, штрих-пунктирных линий и т.д. Причем в зависимости от режима, установленного с помощью функции SetBkMode- TRANSPARENT = прозрачный, OPAQUE = непрозрачный. Так что от того, что ты там выставил цвет фона, у тебя весь DC им не закрасится
Да SetBkColor вообще из другой оперы, он используется для заполнения пустых мест при выводе строк, штрих-пунктирных линий и т.д. Причем в зависимости от режима, установленного с помощью функции SetBkMode- TRANSPARENT = прозрачный, OPAQUE = непрозрачный. Так что от того, что ты там выставил цвет фона, у тебя весь DC им не закрасится
Сэнкс :D . Глупо с моей стороны было не заглянуть в MSDN.....
Цитата:
Originally posted by HardMix
Сэнкс :D . Глупо с моей стороны было не заглянуть в MSDN.....
Сэнкс :D . Глупо с моей стороны было не заглянуть в MSDN.....
Я тут подумал - можно еще установить BRUSH для закраски фона при регистрации класса окна, а потом вызвать Invalidate(TRUE); в теории должно работать
Цитата:
Originally posted by pavor
Я тут подумал - можно еще установить BRUSH для закраски фона при регистрации класса окна, а потом вызвать Invalidate(TRUE); в теории должно работать
Я тут подумал - можно еще установить BRUSH для закраски фона при регистрации класса окна, а потом вызвать Invalidate(TRUE); в теории должно работать
А что - идея. Сча испробую........