Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Рисование на рабочем столе


Ozone ©   (2003-07-08 09:53:00) 

Собственно сабж, но хочется, чтобы рисунок не затирался другими окнами.


Ozone   (2003-07-10 12:18:00) [1]

< вызвать перерисовку рабочего же стола >
Как?


MetalFan   (2003-07-10 10:42:00) [2]

А можно ли узнать какая картинка (графич.файл) отображается в обоях. загрузить, нарисовать на нем,сохранить, и зарефрешить стол... но для часов, имхо, слишком медленно будет работать...
и все-таки, как можно узнать что за файл служит обоями?


DVM   (2003-07-09 12:28:00) [3]

Если включен ActiveDesktop свое окно можно запихать под иконки рабочего стола. Так собственно и делают все программы, которые рисуют прямо на рабочем столе под иконками. А насчет скрытия программы, как окно этому может мешать?


pasha676   (2003-07-09 11:38:00) [4]


> Может, и подскажем - например, перехватывать сообщение WM_ERASEBKGND
> у рабочего стола и по таймеру вызвать перерисовку рабочего
> же стола.

Помоему это будет работать не очень эффективно. Да и геморойно это.


Игорь Шевченко   (2003-07-09 11:33:00) [5]

Может, и подскажем - например, перехватывать сообщение WM_ERASEBKGND у рабочего стола и по таймеру вызвать перерисовку рабочего же стола.


pasha676   (2003-07-09 11:22:00) [6]


> Я хочу, чтобы она сидела в памяти и все...

Ты не поверишь. Обычная Form1 тоже сидит в памяти. Одна из основ виндов - многозадачность и любая задача сидит в памяти. Имхо - самый простой и эффективный подход. Без извратов.


Oops   (2003-07-09 10:44:00) [7]

Можно просто добавлять к картинке на рабочем столе то что нужно и рефрешать рабочий стол :) Так по крайней мере некоторые программы с нужной тебе функциональностью делают.


Ozone   (2003-07-09 10:23:00) [8]

< Объясни мне значение слова "зарезидентить" ...>
Я хочу, чтобы она сидела в памяти и все...
А на счет напакостить, то этот вы зря - пишу обысновенне часики, которые бы рисовались на рабочем столе (также как это делают с календарями).
Можнт подскажите что-нить дельное?


pasha676   (2003-07-09 09:14:00) [9]


> Так не пойдет, т.к. я хочу зарезидентить свою прогу.

Объясни мне значение слова "зарезидентить" по отношению к виндоуз. Я его не понимаю.


Marser   (2003-07-09 01:06:00) [10]

Удалено модератором


Игорь Шевченко   (2003-07-08 14:34:00) [11]

Для того, чтобы пакостить, надо учиться самому. Иначе весь вкус пакости пропадает


Ozone   (2003-07-08 13:59:00) [12]

Так не пойдет, т.к. я хочу зарезидентить свою прогу.


pasha676   (2003-07-08 13:40:00) [13]


> Но тогда он рисует поверх всех окон и ктому же любое окно
> может его затереть.
> Мне нужно рисовать позади всех и чтобы эти "все" его не
> затирали.

Может создать прозрачную форму, а на ее канвасе рисунок?


Ozone   (2003-07-08 13:12:00) [14]

ПОМОГИТЕ!!!!!!!!!


Ozone   (2003-07-08 10:31:00) [15]

Рисую так:

Desktop := TCanvas.Create;
Deskop.Handle := GetDC(0);
// рисую на Desktop
ReleaseDC(0,Deskop.Handle);

Но тогда он рисует поверх всех окон и ктому же любое окно может его затереть.
Мне нужно рисовать позади всех и чтобы эти "все" его не затирали.


Spawn   (2003-07-08 10:02:00) [16]

У пабочего стола Хендл равен 0. Соответственно получай ссылку на его контекст так GetDC(0). И рисуй наздоровье. Только вот над незатираемосью надо бы будет подумать(Может быть получится, напримре, через Хук на WM_PAINT для рабочего стола)


Наверх

Титульная страница Поиск, карта сайта Написать письмо