Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2003.09.22;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.011 c
14-71893
freeman2003
2003-09-03 16:30
2003.09.22
Не выполняется хранимая процедура на SQL server из delphi


3-71563
Galka
2003-08-29 09:31
2003.09.22
Cannot modify a read-only dataset


14-71835
k-man
2003-09-01 18:59
2003.09.22
Железный трабл 2


3-71464
ksu_sergo
2003-09-02 12:05
2003.09.22
union и select


1-71644
scorpi
2003-09-09 06:50
2003.09.22
Создание объекта





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский