Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Цвет окна

2.0K
08 марта 2004 года
HardMix
78 / / 25.06.2003
Задача сменить цвет окна класса дочернего CWnd через контекст устройства. Делаю так

CDC *dc;
dc = Window->GetDC();
dc->SetBkColor(0x00FF00);

Ноль эффекта. Все это в OnPaint. Я вот думаю, или чего в свойствах формы поменять, или я как-то DC криво юзаю. Кстати, если тут юзать SetPixel(...) по всей области - все работает.

Какие есть мнения?
1.8K
10 марта 2004 года
SeregaLBN
62 / / 03.10.2003
Цитата:
Originally posted by HardMix
Задача сменить цвет окна класса дочернего 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

2.0K
10 марта 2004 года
HardMix
78 / / 25.06.2003
Цитата:
Originally posted by SeregaLBN


SetBkColor непомогает


А ты, случайно, не знаешь - почему?

527
11 марта 2004 года
pavor
275 / / 28.09.2003
Цитата:
Originally posted by HardMix

А ты, случайно, не знаешь - почему?


Да SetBkColor вообще из другой оперы, он используется для заполнения пустых мест при выводе строк, штрих-пунктирных линий и т.д. Причем в зависимости от режима, установленного с помощью функции SetBkMode- TRANSPARENT = прозрачный, OPAQUE = непрозрачный. Так что от того, что ты там выставил цвет фона, у тебя весь DC им не закрасится

2.0K
11 марта 2004 года
HardMix
78 / / 25.06.2003
Цитата:
Originally posted by pavor

Да SetBkColor вообще из другой оперы, он используется для заполнения пустых мест при выводе строк, штрих-пунктирных линий и т.д. Причем в зависимости от режима, установленного с помощью функции SetBkMode- TRANSPARENT = прозрачный, OPAQUE = непрозрачный. Так что от того, что ты там выставил цвет фона, у тебя весь DC им не закрасится


Сэнкс :D . Глупо с моей стороны было не заглянуть в MSDN.....

527
14 марта 2004 года
pavor
275 / / 28.09.2003
Цитата:
Originally posted by HardMix

Сэнкс :D . Глупо с моей стороны было не заглянуть в MSDN.....



Я тут подумал - можно еще установить BRUSH для закраски фона при регистрации класса окна, а потом вызвать Invalidate(TRUE); в теории должно работать

2.0K
15 марта 2004 года
HardMix
78 / / 25.06.2003
Цитата:
Originally posted by pavor


Я тут подумал - можно еще установить BRUSH для закраски фона при регистрации класса окна, а потом вызвать Invalidate(TRUE); в теории должно работать


А что - идея. Сча испробую........

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог