Главная страница
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.013 c
7-44923
Dmk
2003-05-03 14:32
2003.07.14
TaskBar


3-44605
Eugene_e
2003-06-20 14:43
2003.07.14
Обновление TClientDataSet


6-44785
FZ*XupypG
2003-05-04 01:57
2003.07.14
Подвисание при обращениии по несущ. адресу.


6-44778
Staraya
2003-05-06 12:37
2003.07.14
Как мне расшарить ресурс, т.е. (аналог net use)


1-44660
Mishenka
2003-06-30 00:13
2003.07.14
Изменение разрешения...