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

Вниз

Вывод текста поверх всех окон.   Найти похожие ветки 

 
ReYken   (2002-11-18 11:43) [0]

Подскажите, плз, как вывести текст (не на окне), а поверх всех окон,
без формы, на несколько секунд, а потом его убрать?

Заранее благодарен.


 
Song   (2002-11-18 11:49) [1]

Получаешь DC десктопа, связываешь его с TCanvas. И выводишь через TCanvas.TextOut(координаты, текст);


 
ReYken   (2002-11-18 12:32) [2]

Да нее... поверх _всех_ окон! И надо типа 25 кадра, меньше чем на секунду и убрать. Типа анимации. Текст меняется.


 
han_malign   (2002-11-18 13:44) [3]

GetDC(0)- помоему, а если убирать то сначала вырезать фон, а потом прорисовывать его на место.


 
ReYken   (2002-11-18 13:46) [4]

Ага... и будут огромные тормоза... я ж грю что надо меньше чем на секунду а потом другой текст.


 
han_malign   (2002-11-18 13:51) [5]

Перерисовка всего экрана будет тормознутее.
(SetWindowRgn по тексту вообще жуть)
InvalidateRect?


 
ReYken   (2002-11-18 13:54) [6]

Вот и я тоже подумал может SetWindowRgn........ :(...

А что такое InvalidateRect я не зна....


 
Godness   (2002-11-22 22:14) [7]

var
Shit:HDC;
begin
Shit := GetDC(0); {этой функцией ты можеш рисовать где угодно (ну почти), 0 - дескриптор рабочего стола, получаеш в переменной Shit ссылку на контекст воспроизведения данного обьекта. Или так - GetDC(Button1.Handle) - рисуеш на бутоне; или так - функцией FindWindow получаеш дескриптор чужого окна и е...ш его}
Rectangle(Shit, 10, 10, 200, 200);
ReleaseDC(0,ScreenDC); {желательно освободить дескриптор (можно не сразу как ты понимаеш) иначе маст дай 98 может выдать глюк (у меня бывало)}


 
Godness   (2002-11-22 22:28) [8]

P.S.
...ля забыл - стереть это дело на рабочем столе надо путем обновления последнего. Делается это так InvalidateRect(Shit);
Низкоуровневая функция, перерисовывает экран быстрее всех других функций. Правда, не совсем точно помню колличество параметров см. Help, хотя вроде все правильно.


 
Godness   (2002-11-22 22:33) [9]

...ля, ...ля лохонулся - InvalidateRect(0) - передаеш дескриптор рабочего стола !?


 
apay   (2002-11-24 23:58) [10]

используй DirectDraw, вырезай кусок экрана, делай копию, на ней пиши, выплескивай это на экран, ч/з 1/25 сек. восстанавливый кусок из заполненного. только не забудь на эти 1/25 сек. залокить область ч/з DirectDraw и залокить область, а то если например в это время окошко таскать будут, то фигня может получиться...


 
Yuri Btr   (2002-11-25 12:05) [11]

Кто нибудь подскажите, что передавать в InvalidateRect!
После вывода текста, мне нужно его убрать и перерисовать экран.
я пытаюсь
InvalidateRect(0,DesktopRect,true);
где DesktopRect : TRect
но надо какой то lpRect ???

И ещё, для корректного восстановления внешнего вида окон, нужно запоминать предыдущий Canvas а затем восстанавливать? или можно просто стереть выведенную надпись?

Заранее спасибо!


 
Yuri Btr   (2002-11-25 12:06) [12]

Сорри, всё работает
InvalidateRect(0,nil,true);



Страницы: 1 вся ветка

Форум: "Система";
Текущий архив: 2003.02.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.009 c
14-5232
hatchy
2003-01-13 18:14
2003.02.03
Проблемы с windows98se и kernel32.dll


1-4839
MikeFW
2003-01-24 14:28
2003.02.03
В обычном приложении работает, а в консольном нет ...


3-4713
ledzzz
2003-01-17 17:53
2003.02.03
штрихкод


14-5217
Ketmar
2003-01-15 20:13
2003.02.03
я вот лисп просил когда-то - не дали. вредины. сделаю схему-тоже


1-4994
Юра
2003-01-23 15:11
2003.02.03
QReport PrintPreview - как запретить?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский