Главная страница
    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.013 c
3-71529
SergeySh
2003-08-30 17:55
2003.09.22
Кто может возразить против Zeos и MSSQL?


1-71637
Max_
2003-09-09 10:31
2003.09.22
Глобальная переменная и её уничтожение!


1-71706
qwerty2
2003-09-10 17:55
2003.09.22
Некорректный импорт библиотеки типов


8-71778
Inna
2003-05-22 13:59
2003.09.22
Мигание


14-71944
ZeroDivide
2003-09-02 12:38
2003.09.22
Вопрос к счастливым обладателям Award BIOS. Как эту сволочь...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский