Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.01.13;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.015 c
8-37807
Novenkij
2003-09-05 14:10
2004.01.13
И еще раз о звуке


3-37505
Виталя
2003-12-17 10:01
2004.01.13
Как засунуть exe-файл в БД.


4-37977
Ertong
2003-11-08 22:01
2004.01.13
Запись HKEY_Current_User другого пользователя в ХР


1-37782
SoS
2003-12-27 18:46
2004.01.13
Операции с *.res файлами


3-37496
Spaniel
2003-12-17 12:39
2004.01.13
Есть ли в дельфях процедура, аналогичная PACK из foxpro?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский