Главная страница
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.02 c
14-71853
Noname_
2003-09-01 10:13
2003.09.22
DHCP сервер на Pro


14-71900
наблюдатель
2003-09-02 22:16
2003.09.22
Любимый вопрос


14-71922
ruslan_as
2003-09-01 10:25
2003.09.22
Как послать сообщение (пароль) в окно открытия AcrobarReader-а


1-71613
Алексей Петухов
2003-09-09 14:44
2003.09.22
Как определить конец таблицы в MSWord?


6-71779
nobody
2003-07-25 00:03
2003.09.22
tcp/ip programming