| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Системное программирование и WinAPI > Прозрачность отдельных элементов окна |
| Автор: webgraf 26.10.2007, 14:22 |
| Нужно реализовать следующий эффект: В абсолютно прозрачном окне будет выводится список TextOut-ов (штук 10-20). При этом периодически отдельные TextOut-ы должны иногда плавно исчезать/появлятся(используя прозрачность). Посему прошу совета - как это реализовать? На ум приходит две идеи: 1. Сделать основное окно абсолютно прозрачным(LWA_COLORKEY например). А на него кидать AlphaBlend-ом TextOut-ы. Совершенно не представляю - будет ли это работать 2. Для каждого TextOut-а сделать свое, модальное например, окно и просто регулировать прозрачность(LWA_ALPHA) каждого. Последний вариант удобен тем что легко будет отлавливать click-и на TextOut(а это надо будет делать..), но как эффективно это будет работать - пока не представляю, да и как сделать одновременно LWA_ALPHA и LWA_COLORKEY тоже понятия не имею(окошки должны быть без фона и прозрачные ведь..). В общем если у кого есть задумка, ткните в нужно направлении. Спасибо ;) |
| Автор: Andrey44 26.10.2007, 15:32 |
| http://forum.vingrad.ru/forum/topic-164440/hl/vista/index.html#st_15_view_0 посмотри. |
| Автор: webgraf 26.10.2007, 16:23 | ||
А что там? Обычное полупрозрачное окно. LWA_ALPHA. Как мне это поможет? |
| Автор: Andrey44 26.10.2007, 16:49 | ||
Тогда попробуй на прозрачном окне написать. |
| Автор: webgraf 26.10.2007, 17:53 |
| MFC не использую ((. Но даже если что на нем и писать - то оно тоже будет полупрозрачное. А задача фактически - чтоб у разных элеметов на экране была разная прозрачность. Думаю все же попробовать поэксперементировать с окнами. Создать на полностью прозрачном окне другое прозрачное - с текстом. Только как вот этот текст потом заставить "затухать". Фактически надо решить задачу одновременной прозрачности по одному цвету LWA_COLORKEY и прозрачности альфа-канала LWA_ALPHA. вот. |
| Автор: Andrey44 29.10.2007, 09:50 |
| Ну во-первых это не MFC , а GDI+. А во-вторых, что-то я тебя не пойму - что именно ты хочешь сделать? |
| Автор: webgraf 29.10.2007, 15:10 |
1. Показать на экране только строки без содержимого окна. Это сделать легко - достаточно применить SetLayeredWindowAttributes с указанием прозрачного цвета окна. 2. Реализовать тот самый эффект исчезания строк. Причем поотдельности для каждой. Вот над вторым пунктом я и бьюсь. Как сделать чтобы окно одновременно имело прозрачный цвет LWA_COLORKEY да еще и имело неполную прозрачность? И как сделать это отдельно для каждой строки? Ну скажем для каждой строки можно открыть новое окошко и играться с его параметрами... |
| Автор: Andrey44 29.10.2007, 15:46 |
| А почему-бы тогда тебе просто не писать на рабочем столе? Задавая прозрачность прозрачность цвета строки. И это без всяких окон |
| Автор: webgraf 29.10.2007, 18:20 |
| информация должна будет быть always on top. таким методом так получится? да и в перспективе к этим строкам будут приделаны кнопки разные... |