Текущий архив: 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.47 MB
Время: 0.007 c