Проблема в том, что после заливки (уставновки цвета фона
hdc=BeginPaint(Win,&pc);
GetClientRect(Win,&rect);
SetBkColor(hdc,RGB(100,100,0));
ExtTextOut(hdc,0,0,ETO_OPAQUE,&rect,NULL,0,NULL);)
любой элемент (текст) будь то static text или Group Box
выводится по серому фону, хотя цвет фона уже установлен другим.
Как это исправить?
Re: Вторая проблема, связанная с затиранием фона...
Здравствуйте kirina, Вы писали:
K>Проблема в том, что после заливки (уставновки цвета фона K>hdc=BeginPaint(Win,&pc); K>GetClientRect(Win,&rect); K>SetBkColor(hdc,RGB(100,100,0)); K>ExtTextOut(hdc,0,0,ETO_OPAQUE,&rect,NULL,0,NULL) K>любой элемент (текст) будь то static text или Group Box K>выводится по серому фону, хотя цвет фона уже установлен другим. K>Как это исправить?
Ни static, ни Group Box не умеют рисовать себя прозрачно. Просто все стандартные контролы полностью отвечают за отрисовку занимаемой области. Чтобы они были прозрачными, нужно их рисовать самостоятельно (обрабатывать WM_CTLCOLORSTATIC или вообще WM_PAINT).
Успехов,
Виталий.
Re: Вторая проблема, связанная с затиранием фона...
Здравствуйте kirina, Вы писали:
K>Проблема в том, что после заливки (уставновки цвета фона K>hdc=BeginPaint(Win,&pc); K>GetClientRect(Win,&rect); K>SetBkColor(hdc,RGB(100,100,0)); K>ExtTextOut(hdc,0,0,ETO_OPAQUE,&rect,NULL,0,NULL) K>любой элемент (текст) будь то static text или Group Box K>выводится по серому фону, хотя цвет фона уже установлен другим. K>Как это исправить?
Лови в родительском окне, для твоего контрола, WM_CTLCOLORSTATIC для STATIC, для других контролов свои сообщения — в MSDN подробно описано какие именно и как их обрабатывать.
Здравствуйте Gambler, Вы писали:
G>Здравствуйте Юнусов Булат, Вы писали:
ЮБ>>Здравствуйте Gambler, Вы писали: ЮБ>>Речь про что то такое? ЮБ>>http://rsdn.ru/forum/message.asp?mid=29166
G>я не совсем понял ваш вопрос, но ссылка повествует о том, что я имел ввиду.
Не спорю, хотел немножко кода добавить — не посмотрел что форум винапишный, впрочем это не так страшно