Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.5 MB
Время: 0.013 c
1-37646
MadAngel
2003-12-26 19:50
2004.01.13
Картинки в TreeView


14-37859
Спрашивающий_
2003-12-22 01:29
2004.01.13
Поздравляю всех энергетиков с профессиональным праздником


3-37548
SergP
2003-12-17 12:53
2004.01.13
Проблема с вычисляемыми полями в SQL запросе


8-37803
Rif_yev
2003-09-10 11:06
2004.01.13
Real


14-37931
Vlad Oshin
2003-12-23 13:05
2004.01.13
ping таймаут по умолчанию (WinNt)?