![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Рисование на рабочем столе
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 для рабочего стола)