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

Вниз

Рисование на десктопе   Найти похожие ветки 

 
Some0ne   (2003-06-30 02:48) [0]

Как можно рисовать на десктопе винды, под иконками? Например, так, как делают это некоторые видео проигрователи - "Desktop mode".

Премного благодарен =)


 
Shluz   (2003-06-30 12:44) [1]

GetDesktopWindow хорошая весЧь


 
MARcoDEN   (2003-06-30 12:59) [2]

procedure DrawOnScreen;
var
ScreenDC: hDC;
beign

ScreenDC := GetDC(0); {получить контекст экрана}
Ellipse(ScreenDC, 0, 0, 200, 200); {нарисовать}
ReleaseDC(0,ScreenDC); {освободить контекст}

end;


 
Shluz   (2003-06-30 13:11) [3]

дык ему, вроде как, контролы надо как дочерние рабочего стола разместить если я правильно понял .. :)
//setparent()


 
Skier   (2003-06-30 13:11) [4]

var
ACanvas : TCanvas;
AScreenDC : HDC;
begin
AScreenDC := GetDC(0);
ACanvas := TCanvas.Create;
try
ACanvas.Handle := AScreenDC;
//работаем с канвой (ACanvas)...
finally
ACanvas.Free;
ReleaseDC(0, AScreenDC);
end; //try
end;


 
Some0ne   (2003-06-30 19:50) [5]

Спасибо, конечно, всем откликнувшимся, но я не то имел в виду. Наверное я неправильно сформулировал! =(

Необходимо рисовать изображение на рабочем столе, ПОД ИКОНКАМИ . Если я буду делать так как в исходниках выше, то мое изображение будет находиться поверх иконок! А мне надо чтобы иконки на десктопе не затирались!

В этом форуме когда то обсуждалось нечно подобное, но ссылка битая! =(
http://delphimaster.net/view/16-1036460227/

Так же есть исходник на билдере, но я как ни пытался, не могу перевести его на дельфи! Может поможет кто???


 
Sapersky_   (2003-07-01 00:57) [6]

В DirectX есть такая штука - оверлеи (overlays, "аппаратные спрайты"). Они, во-первых, не затирают нижележащее изображение при выводе (поскольку вставляются прямо в отправляемый на монитор сигнал), во-вторых, для них, как правило, можно задать т.н. цветовой ключ поверхности-приёмника (проще говоря, цвет пикселей на экране, которые будут замещены оверлеем). Таким образом, для рисования на рабочем столе назначаем ему какой-нибудь редкий цвет (обои, естественно, убираем), создаём оверлей на весь экран и назнаем ему этот же цвет в качестве destination color key. Рисуем всё что нужно в оверлей. Насчёт видеопроигрывателей не знаю, но WinAmp"овский AVS (Settings/Display/Overlay Mode) делает, по всей видимости, именно так.
При этом имеются следующие проблемы: не все видеокарты поддерживают оверлеи; не все видеокарты поддерживают RGB-оверлеи (например, GeForce2MX может работать только с YUV-форматами, они ещё называются FourCC); в большинстве случаев одновременно отображаться может только один оверлей (для видео, впрочем, больше и не требуется); некоторые видеокарты накладывают ограничения на размер, положение и масштабирование оверлеев.
В общем, оверлеи - штука довольно муторная, и досконально объяснить здесь этот вопрос невозможно; см. DirectX SDK (если нужно видео - лучше, наверное, DirectX8, иначе DirectX7 (DirectDraw)).
Имеются, впрочем, и другие способы:
http://igor-kusakov.narod.ru/articles/transparent/transparent.htm



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

Форум: "Основная";
Текущий архив: 2003.07.14;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.01 c
7-44922
Злодей
2003-05-01 12:07
2003.07.14
Модем


7-44931
Kooler
2003-05-04 01:43
2003.07.14
Именение уровня громкости через Делфи


7-44933
Shurik
2003-04-27 00:57
2003.07.14
Привязка к железу


4-44951
HollowMan
2003-05-12 15:23
2003.07.14
Как отследить положение мыши находящейся вне области программы?


1-44718
АлеКо
2003-06-26 08:56
2003.07.14
Работа с формой.





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