0 / 0 / 0
Регистрация: 09.06.2010
Сообщений: 4
|
|
1 | |
Builder C++ Форма на основе PNG изображения (GDI+,RocketDock,и т.д..)14.12.2011, 01:02. Показов 1651. Ответов 2
Метки нет (Все метки)
Предлагаю обсудить вопрос о реализации форм на основе PNG текстур, как это применяется в
модерн скинах Винампа, в панелях типа РокетДок и т.п. Есть простой способ сделать подобную форму и привожу пример: http://img593.imageshack.us/im... anntql.png По сути это Выставленные свойства формы GlassFrame соответственно доступно только на ОС с поддержкой "Аеро", а в других ОС альфа канал формы просто будет заменен на цвет формы. От сюда вытекает следствие того что не практично юзать такого рода решения. Облазив массу страничек я понял что вопрос по сей день открыт, и путного решения так и не нашел, "Регионы" и "ТранспарентФормы по цвету" как то не актуален, ибо если вы захотите создать своей программе действительно необычный стиль с тенью и прочими фишками.... Пишите предложения будем активно обсуждать и находить ответ, предлогайте варианты на GDI+ (вроде в винампе на этой библиотеке сделано)
0
|
14.12.2011, 01:02 | |
Ответы с готовыми решениями:
2
GDI+ и прозрачность PNG Рисунок png + GDI Форма с полупрозрачным фоном GDI+ Вывод изображения из Vector GDI+ |
0 / 0 / 0
Регистрация: 09.06.2010
Сообщений: 4
|
|
14.12.2011, 09:58 [ТС] | 3 |
Предлагаю вариант:
Я вчера решил проэксперементирова и сделал следующее: На Форму поместил Image присвоил ему PNG картинку с тень...ну тот квадрат что на картинке выше Убрал у формы Бордюры. Дальше реализовал элементарый код: (не привожу конкретно код, т.к. сижу на работе) На форму определенного размера помещаю скриншот РС При перетаскивании формы в в другую область экрана запускается функция перерисовки при отпускании кнопки мыши. Т,Е по сути получается тот самый нужный эффект "прозрачности формы", но не знаю как оптимально использовать этот трюк, поскольку ФОН может менятся, или к примеру под форму попал объъект, а если ставить перерисовку в отдельный поток ну или простов таймер то идет как ни как но нагрузка, потому как помимо того что надо переснять РС так ещё надо заного присвоить Имажу картинку...... Вот мой вариант, по мне он оптимален и с задачей должен справится, но что вы предложите лушче... или может быть попробуем оптимизировать этот варинт (вечером выложу код) Вопрос считаю весьма интересным и по моему наблюдению особо оптимального решения нет, возможно кто через gdi+ предложит, сам я пробовал gdi+ но получалось что то вроде "региона" вообщем лажа, края не сглажанные , тени нет (хотя как то можно добавить)... PS знаю как сделать с помощью bmp (32bit) это достаточно элементарно, сплеш скрины делать можно но размер bmp да в 32bit-ом варианте весьма большой, делал ещё варианты, ИДЕАЛЬНО ресуют форму со "скрытой" формой но с видимыми компонентами...но компоненты получаются не рабочими(т.е толку прменительного нет)
0
|
14.12.2011, 09:58 | |
14.12.2011, 09:58 | |
Помогаю со студенческими работами здесь
3
GDI+ загрузка изображения из файла Builder 6 + png + res = trouble Изображения в PNG PNG в C++ builder 2007. Как открыть картинку. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |