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

Вниз

Рисование на рабочем столе   Найти похожие ветки 

 
Ozone ©   (2003-07-08 09:53) [0]

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


 
Spawn ©   (2003-07-08 10:02) [1]

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


 
Ozone ©   (2003-07-08 10:31) [2]

Рисую так:

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

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


 
Ozone ©   (2003-07-08 13:12) [3]

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


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


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

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


 
Ozone ©   (2003-07-08 13:59) [5]

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


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

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


 
Marser ©   (2003-07-09 01:06) [7]

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


 
pasha676   (2003-07-09 09:14) [8]


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

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


 
Ozone ©   (2003-07-09 10:23) [9]

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


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

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


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


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

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


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

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


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


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

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


 
DVM ©   (2003-07-09 12:28) [14]

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


 
MetalFan ©   (2003-07-10 10:42) [15]

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


 
Ozone ©   (2003-07-10 12:18) [16]

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



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

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

Наверх




Память: 0.5 MB
Время: 0.033 c
4-72006
mm0
2003-07-19 05:50
2003.09.22
Цвет в RICHEDIT


14-71955
Карелин Артем
2003-08-29 15:26
2003.09.22
Жигули VS Мерседес.


1-71703
P0tia
2003-09-10 18:01
2003.09.22
Формы и как с ними бороться?


7-71966
_FreeMan_
2003-07-10 00:35
2003.09.22
Как отключить звуковую(или сетевую) карту?


3-71536
a_andru
2003-08-24 19:44
2003.09.22
Oracle: Получение значений из запроса...