Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.05.09;
Скачать: CL | DM;

Вниз

Рисование на Desktop e   Найти похожие ветки 

 
FFFF   (2002-03-06 16:22) [0]

Уважаемые мастера!
У меня такая задача - нужно отображать различные надписи
на десктопе , поверх всех окон. Надпись отображается в
течении некоторого времени, затем изчезает. Я использовал
прозрачное окно, но от артефактов на перекрываемых окнах
избавиться не удалось. Кроме того, окно, будучи невидимым,
все же присутсвовало, и перекрывало нижележащие окна.
Посоветуйте, что можно придумать.

Алексей.


 
SergeySA   (2002-03-06 16:25) [1]

Для этого надо получить контекст чужого окна, либо всего экрана:

function GetDC(Wnd: HWnd): HDC;

где Wnd - указатель на нужное окно, или 0 для получения контекста всего экрана.
И далее, пользуясь функциями API, нарисовать все что надо.

procedure DrawOnScreen;
var
ScreenDC: hDC;
begin
ScreenDC := GetDC(0); {получить контекст экрана}
Ellipse(ScreenDC, 0, 0, 200, 200); {нарисовать}
ReleaseDC(0,ScreenDC); {освободить контекст}
end;

Не забывайте после своих манипуляций посылать пострадавшим (или всем) окнам сообщение о необходимости перерисовки, для восстановления их первоначального вида.


 
FFFF   (2002-03-06 16:29) [2]

Не получится ли при этом, что какое-то окно передвинут и надпись
будет, например, разорвана пополам ?


 
SergeySA   (2002-03-06 16:48) [3]

Наверно да. Не пробывал. Обновляй десктоп и др. окна
при передвиганиях. Или рефреш чаще надпись.


 
FFFF   (2002-03-06 16:53) [4]

Увы, частое обновление надписи не помогает, остаются артефакты
на окнах. А как перехватить все изменения десктопа,или других окон, мне в голову не приходит.



 
VuDZ ©   (2002-03-06 17:38) [5]

есть такая вещь - регионы.
если есть желание - можно текс перевести в битмап, из него сделать регион. Как это делается - могу прислать исходник.

Потом, это регионвместе с картинкой накладываешь на окно и всё.


 
FFFF   (2002-03-07 11:33) [6]

Если исходник есть, пришли. На alexey@paninter.ru
Тогда получается, что это нужно делать перед выводом
каждого текстового сообщения(текст->битмап->регион).
Не будет ли такая конструкция тормозить?


 
VuDZ ©   (2002-03-07 15:31) [7]

если у тебя текст не меняется очень часто, то не будет. на мыло ушёл исходник с примером



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

Текущий архив: 2002.05.09;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.016 c
1-26198
Denis Yenin
2002-04-25 16:36
2002.05.09
Как сделать, чтобы MDI приложение было а-ля Delphi, Builder?


14-26245
Vladimir Lubenchenko
2002-03-31 20:49
2002.05.09
Большая просьба к владельцам D6+Upd2 (!!!)


1-26119
Дмитрий Баранов
2002-04-24 15:31
2002.05.09
Плагины и MDI формы.


7-26284
ray_wagner
2002-02-05 15:57
2002.05.09
Эмуляция активной деятельности компа :-)


3-26015
IronHawk
2002-04-16 12:29
2002.05.09
Приветствую Мастеров ! Надо решить проблемму ! ОЧЕНЬ !