Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Звук, графика и видео > Как вывести jpg, bmp полупрозрачными?


Автор: nobody12 3.5.2006, 01:24
Мне нужно отображать какую-нибудь jpg или bmp картинку на рабочем столе ПОЛУПРОЗРАЧНЫМИ (с возможностью задавания стапени полупрозрачности). Можно ли это сделать?

И еще вопрос: мне нужно, чтобы эта картинка отображалась по верх всех окон. Какое сообщение для этого мне нужно перхватывать? 

Автор: Snowy 3.5.2006, 08:29
Вывод прозрачной картинки: http://forum.vingrad.ru/index.php?showtopic=91526
Для вывода поверх всех окон есть 2 варианта:
1. Просто рисуешь прямо на десктопе, используя GetDC(0). Но картинка не будет окном, поэтому ее быстро сотрут другие окна.
2. Создать окно. Сделать снимок десктопа. Поместить в окно кусок снимка десктопа, который находится по окном. Наложить прозрачную картинку. Сделать окно поверх всех, без рамки. Возни больше, но картинка будет сидеть надежно. 

Автор: nobody12 3.5.2006, 10:49
Цитата(Snowy @ 3.5.2006,  08:29)
1. Просто рисуешь прямо на десктопе, используя GetDC(0). Но картинка не будет окном, поэтому ее быстро сотрут другие окна.

В этом случае я хотел перехватывать в DLL сообщение о перепрорисовке экрана, и затем заново рисовать картину. Вот только я не знаю какое сообщение?... 

Автор: Alexeis 3.5.2006, 11:05
Сообщения о перерисовке это WM_PAINT и WM_ERASEBKGND
Но для перехвата сообщений понадобится Хэндл окна Десктопа
Его можно получить GetDesktopWindow(); 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)