Форум: "Система";
Текущий архив: 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