Текущий архив: 2004.01.13;
Скачать: CL | DM;
ВнизCanvas.TextOut - прозрачный фон Найти похожие ветки
← →
alex_*** (2003-12-30 14:39) [0]народ, из головы вылетело, как при выводе текста через Canvas.TextOut(...) сделать прозрачный фон?
← →
Тимохов (2003-12-30 14:41) [1]в textflags канваса поставить ETO_OPAQUE
← →
alex_*** (2003-12-30 14:48) [2]не помогло ((
есть для Canvas аналог SetBkMode(hdc,TRANSPARENT)?
← →
Юрий Федоров (2003-12-30 14:53) [3]по моему
brush.style:=bsClear
← →
alex_*** (2003-12-30 14:54) [4]хрен с ним. Сделал через SetBkMode(canv.Handle,TRANSPARENT);
← →
Юрий Федоров (2003-12-30 14:54) [5]>>есть для Canvas аналог SetBkMode(hdc,TRANSPARENT)?
вообще-то можно и напрямую вызывать, никто не запрещает
SetBkMode(Canvas.Handle, TRANSPARENT)
← →
Тимохов (2003-12-30 14:55) [6]alex_*** © (30.12.03 14:48) [2]
Странно - я взял кусок из своей проги. У меня работает.
← →
Тимохов (2003-12-30 14:58) [7]alex_*** © (30.12.03 14:48) [2]
Ты почитай внимательно описание к textflags.
ETO_OPAQUE надо снять, а не поставить.
Виноват в Тимохов © (30.12.03 14:41) [1] - был не корректен, не до конца прорюхал свой исходник.
← →
Тимохов (2003-12-30 15:01) [8]Юрий Федоров © (30.12.03 14:53) [3]
Это сработает если пользоваться TextRect. В TextOut это не сработает, ИМХО. Не проверял, но по исходнику graphics именно так.
← →
Юрий Федоров (2003-12-30 15:05) [9]>>Тимохов © (30.12.03 15:01) [8]
Действительно судя по исходнику именно так.
Странно...
← →
Serge (2003-12-30 15:06) [10]> Тимохов © (30.12.03 15:01) [8]
>Юрий Федоров © (30.12.03 14:53) [3]
>Это сработает если пользоваться TextRect. В TextOut это не >сработает, ИМХО. Не проверял, но по исходнику graphics именно >так.
Очень даже работает - :)
← →
Тимохов (2003-12-30 15:12) [11]Serge © (30.12.03 15:06) [10]
Действительно, Вы правы.
Щас пойму почему так - по коду не совсем понятно...
← →
alex_*** (2003-12-30 15:15) [12]у меня помогает только SetBkMode(Canvas.Handle, TRANSPARENT) (((
← →
Тимохов (2003-12-30 15:16) [13]alex_*** © (30.12.03 15:15) [12]
Пример работающего кода
with PaintBox1.canvas do
begin
moveto(10,10);
lineto(100,10);
brush.style:=bsClear;
textout(10, 5, "22222");
end;
← →
alex_*** (2003-12-30 15:20) [14]эх.. проще выходит через SetBkMode(...)
← →
Тимохов (2003-12-30 15:25) [15]alex_*** © (30.12.03 15:20) [14]
Да ясно, что проще, но ведь интересно же - смотришь в код, видишь одно, а он работате по-другому...
← →
REA (2003-12-30 16:08) [16]brush.style:=bsClear вызывает че то типа SetBkMode(...) поэтому индифферентно что использовать
← →
Тимохов (2003-12-30 16:19) [17]REA © (30.12.03 16:08) [16]
brush.style:=bsClear ничего не делает.
SetBkMode вызывается в методе tcanvas.RequiredState.
Знатокам.
Все эти изыскания навели меня на мысль, о том, что у меня ошибка, а то, что раньше работало все нормально, так это счастливое стечение обстоятельств.
Вопрос, почему в методе ExtTextOut (им пользуется TextOut) не работает флажок ETO_OPAQUE. Т.е. вернее он ни на что не влияет, хотя по http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/fontext_2ks4.asp вроде как должен это делать? Интересно...
Страницы: 1 вся ветка
Текущий архив: 2004.01.13;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.007 c