![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 01.09.2008
Сообщений: 178
|
![]()
Итак, в продолжение своей идеи с "пузырями" здесь, необходимо разобраться с слоями и прозрачностью.
В ресурсах у меня есть битмап - окружность. Попытался сделать его прозрачным, но по всей видимости никак не пойму логики работы функции AlphaBlend, но прозрачнее картинка не становится. Код:
Быть радикальным - значит понять вещь в её корне. К.Маркс
|
![]() |
![]() |
![]() |
#2 |
somewhere else
Участник клуба
Регистрация: 17.07.2008
Сообщений: 1,409
|
![]()
Окно созданное с прозрачностью должно обладать стилями WS_EX_LAYERED - у вас оно таковым обладает? И сделать окно прозрачным можно гораздо проще - функцией SetLayeredWindowsAttributes.
"Тяжело в учении, легко в бою" - А.В. Суворов
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 01.09.2008
Сообщений: 178
|
![]()
У меня не окно прозрачное должно быть, а картинка IDB_BITMAP1, что в ресурсах.
Быть радикальным - значит понять вещь в её корне. К.Маркс
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 01.09.2008
Сообщений: 178
|
![]()
Все, нашел.
Косяк был в этом куске: Код:
И еще нужно было сбросить параметр bfn.AlphaFormat = 0; т.к. bfn.AlphaFormat = AC_SRC_ALPHA; если битмап имеет глубину цвета 32 бита. Я правильно понимаю, что AlphaBlend и BitBlt делают одно и то же: передают битмап с совместимого контекста устройства в памяти реальному контексту устройству (дисплею)? С той лишь разницей, что AlphaBlend еще определяет прозрачность.
Быть радикальным - значит понять вещь в её корне. К.Маркс
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 01.09.2008
Сообщений: 178
|
![]()
решил поэкспериментировать с окном и попробовать функцию SetLayeredWindowsAttributes, но когда прописываю в стилях окна WS_EX_LAYERED, мне выдает ошибку: undeclared identifier.
Быть радикальным - значит понять вещь в её корне. К.Маркс
|
![]() |
![]() |
![]() |
#6 | |
Студент, не
Старожил
Регистрация: 29.01.2009
Сообщений: 2,067
|
![]() Код:
Вы сначала выводите картинку без прозрачности, а потом поверх неё рисуете её же, но уже с прозрачностью... %) Я бы от того кода попробовал оставить только это: Код:
P.S. Вот > тут < описание функции... ![]() И полезная цитата: Цитата:
I am the First of Cyber Evolution...
I am the First to Program your Future... |
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Прозрачность | SanekIrk | Общие вопросы Delphi | 4 | 30.12.2008 12:12 |
прозрачность | Артэс | Win Api | 8 | 02.12.2008 11:24 |
AlphaBlend - прозрачность картинки | Vovandows | Мультимедиа в Delphi | 2 | 26.09.2008 00:35 |
AlphaBlend + ShowModal | Cardagant | Общие вопросы Delphi | 2 | 11.06.2008 15:42 |
Прозрачность | Лубышев | Помощь студентам | 3 | 23.01.2008 00:05 |