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

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.015 c
9-44527
Alek Aaz
2003-01-27 08:16
2003.07.14
Растянуть картинку


3-44573
corte ™
2003-06-20 09:57
2003.07.14
Как подключится к оракле без установки родного клиента


14-44839
Карелин Артем
2003-06-26 13:01
2003.07.14
Как вам такой код? По-моему ужасно.


1-44703
Demetrius2003
2003-07-01 01:06
2003.07.14
Invalid Floating operation ???


14-44858
kaif
2003-06-26 02:20
2003.07.14
Сегодня настоящий праздник