![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
полупрозрачная надпись [D6, Win95/98, WinME, NT4, Win2k, WinXP]
Альфа © (2005-06-02 15:28:00)Здравствуйте! Как сделать следующее: выводить полупрозрачную надпись периодически через 1/100 секунды поверх всех окон? GetDC(0)+TextOut() не подходит, т.к. надпись затирается если открыть какое нибудь окно. Нужно, чтобы надпись мерцала и была полупрозрачной и это должно работать во всех Windows.
alpet (2005-06-03 20:10:00) [1]Перепутал сорри - функция - AlphaBlend.
alpet (2005-06-03 19:24:00) [2]Чапаев © (03.06.05 13:56) [9]
Для этого достаточно TransparentBlt. Другое дело что надо обрабатывать перемещение и изменение размера всех окнон довольно хитроумно, перед началом перемещения сохраняя изображение всех окон и рабочего стола. Без ловушек здесь естественно не обойтись.
Чапаев (2005-06-03 13:56:00) [3]> Где-то я видел пример, создания полупрозрачных окон под 9x -
> что самое удивительное - работало...
В принципе, можно брать (в простейшем случае) среднее арифметическое пиксела десктопа и соответствующего пиксела формы и рисовать сей пиксель вместо оригинального...
Естественно, способ феноменально тормозной.
GrayFace (2005-06-03 13:31:00) [4]У меня есть такой пример, но он не рассчитан на StayOnTop.
Eraser (2005-06-03 13:11:00) [5]alpet © (03.06.05 11:39) [6]
Где-то я видел пример, создания полупрозрачных окон под 9x - что самое удивительное - работало... но примерчик не маленький, и могут возникать глюки.
alpet (2005-06-03 11:39:00) [6]Под 9x очень проблемно сделать "полупрозрачную надпись поверх всех окон". Не смотря даже на наличие в 98 функции TransparentBlt.
Neznaika (2005-06-03 11:26:00) [7]>>Не будет работать под 9х
Win9x в работе, уже года два не видел, не на работе не дома ни у кого, кто им пользуется еще...
Чапаев (2005-06-03 11:17:00) [8]> Создай полупрозрачную форму без заголовка
Не будет работать под 9х.
alpet (2005-06-03 11:11:00) [9]Создай полупрозрачную форму без заголовка (borderStyle=bsNone), установи ее свойство formStyle в fsStayOnTop, размести в середине компонент TLabel с нужной тебе надписью. И не надо никаких периодических выводов.
Чапаев (2005-06-03 10:50:00) [10]> выводить полупрозрачную надпись периодически через 1/100
> секунды поверх всех окон? GetDC(0)+TextOut() не подходит, т.к.
> надпись затирается если открыть какое нибудь окно
Хм. Если ты её 100 раз в секунду обновляешь, как же это ты успеваешь заметить, что надпись затёрта?
Eraser (2005-06-02 21:55:00) [11]Альфа (02.06.05 15:28)
"Намертво", чтобы не затиралась - никак.
Полупрозрачнасть легко организовать с пом. св-ва ScanLine или Pixels.