прозрачность

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Akella
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 144
Зарегистрирован: 15.09.2004 (Ср) 14:26
Откуда: Россия, Тюмень

прозрачность

Сообщение Akella » 05.03.2006 (Вс) 18:11

делаю прогу одну там с помощью регионов делаю замкнутые фигуры, каждая фигура в отдельном PictureBox'е этих Picturebox ов много, и все они должны проэцироваться в один (другой) PictureBox,
короче надо эти картинки с регионами както без фона скопировать в обший Picturebox, чтопы потом можно было делать прозрачность каждой картинки, в общем PictureBoxе

я пробовал делать с помощью
Код: Выделить всё
Private Declare Function AlphaBlend _
  Lib "msimg32" ( _
  ByVal hDestDC As Long, _
  ByVal x As Long, ByVal y As Long, _
  ByVal nWidth As Long, _
  ByVal nHeight As Long, _
  ByVal hSrcDC As Long, _
  ByVal xSrc As Long, _
  ByVal ySrc As Long, _
  ByVal widthSrc As Long, _
  ByVal heightSrc As Long, _
  ByVal dreamAKA As Long) _
  As Long


но когда прозрачтость маленькая то фон все портит

Помогите
Не бойся что не знаешь, бойся что не учишься.

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 05.03.2006 (Вс) 18:41

Слабо понял мыслю, но может тебе надо TransparentBlt?
Если всё делать своими ручками, они скоро отвалятся !

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 05.03.2006 (Вс) 22:05

Ещё можно пользоваться апишкой SetLayeredWindowAttributes.

С её помощью можно устанавливать колок-кей (т.е. прозрачный цвет) для формы + общий уровень прозрачности (т.е. Альфу)

Так можно делать каждую картинку в своём пиктере-боксе без копирования бит-карты. А уж если потом нужно будет всё это получить в виде одной картинки то BitBlt самого нижнего PictureBox'а в буфер, а Буфер.Image сохранять в файл.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 05.03.2006 (Вс) 23:00

Хакер
Ты полную Declare ... не прописал. А между тем в стандартном наборе API Viewer'а её нету. И как спрашивается юзать?
Изображение

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 06.03.2006 (Пн) 4:01

Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Nicky
Постоялец
Постоялец
 
Сообщения: 519
Зарегистрирован: 12.08.2004 (Чт) 12:14

Сообщение Nicky » 06.03.2006 (Пн) 10:09

TransparentBlt имхо правильно

Akella
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 144
Зарегистрирован: 15.09.2004 (Ср) 14:26
Откуда: Россия, Тюмень

Сообщение Akella » 07.03.2006 (Вт) 7:01

за TransparentBlt - спасибо но это то только желательно уровень прозрачность задовать

-------------
у меня с PictureBox'ом и с SetLayeredWindowAttributes проблемы, неполучается чото,

Код: Выделить всё

Private Sub hs_Change()
'Pic1(0) - PictureBox содержащий картинку
'hs- slider или ScrollBar со свойсвтом Max = 255
' И не чего не происходит
Dim Ret As Long
    'Set the window style to 'Layered'
    Ret = GetWindowLong(Pic1(0).hWnd, GWL_EXSTYLE)
    Ret = Ret Or WS_EX_LAYERED
    SetWindowLong Pic1(0).hWnd, GWL_EXSTYLE, Ret
    'Set the opacity of the layered window to 128
    SetLayeredWindowAttributes Pic1(0).hWnd, 0, hs.Value, LWA_ALPHA
    Pic1(0).Refresh
End Sub

Private Sub hs_Scroll()
hs_Change
End Sub


Вложения
Layered.rar
(13.18 Кб) Скачиваний: 60
Не бойся что не знаешь, бойся что не учишься.

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 07.03.2006 (Вт) 12:17

Только окна верхнего уровня можно делать с флагом Layered...
Если всё делать своими ручками, они скоро отвалятся !

Akella
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 144
Зарегистрирован: 15.09.2004 (Ср) 14:26
Откуда: Россия, Тюмень

Сообщение Akella » 08.03.2006 (Ср) 6:08

прость :oops: , а какой флаг надо использовать для Picturebox и его картинки
Не бойся что не знаешь, бойся что не учишься.

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 08.03.2006 (Ср) 11:56

Объясни, что конкретно тебе нужно(честно признаюсь, первый твой пост не очень поянл). Чтобы окно было сложной совокупностью кусков с разной прозрачностью? (для дочерних окон флага нет)
Если всё делать своими ручками, они скоро отвалятся !

Akella
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 144
Зарегистрирован: 15.09.2004 (Ср) 14:26
Откуда: Россия, Тюмень

Сообщение Akella » 08.03.2006 (Ср) 16:45

вот, в Pic1(3) - это и есть общий в который должно все накладываться, а два предыдущих , ето какбы слои,и мне надо чтобы верхние слои в общем пике, могли становиться прозрачными при этом без фона , а только фигуры, чтобы фон из каждого пиктуребокса вообще не попадал в общий, вот
Вложения
T2.rar
(7.99 Кб) Скачиваний: 47
Не бойся что не знаешь, бойся что не учишься.

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 08.03.2006 (Ср) 20:27

Так или не так?
Вложения
T2.rar
(2.7 Кб) Скачиваний: 49
Если всё делать своими ручками, они скоро отвалятся !

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 08.03.2006 (Ср) 21:53

keks-n писал(а):Хакер
Ты полную Declare ... не прописал. А между тем в стандартном наборе API Viewer'а её нету. И как спрашивается юзать?


хм... Я, честно, никогда не юзал API Viewer, но все больше уюеждаюсь в его бесполезности...

http://www.mentalis.org/apilist/SetLaye ... utes.shtml
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 08.03.2006 (Ср) 22:06

kirrun писал(а):
keks-n писал(а):Хакер
Ты полную Declare ... не прописал. А между тем в стандартном наборе API Viewer'а её нету. И как спрашивается юзать?


хм... Я, честно, никогда не юзал API Viewer, но все больше уюеждаюсь в его бесполезности...

Откуда в стандартном API Viewer-е, выпущенном в 1998 г., могут появиться функции, новые для Win2000? :roll:
Дело здесь не в бесполезности, а в возрасте продукта и в прекращении его поддержки.
Изображение

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 09.03.2006 (Чт) 12:45

kirrun
Поставь хотя бы Апивьюер 2004 и получишь большую часть объявлений :)
Если всё делать своими ручками, они скоро отвалятся !

Akella
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 144
Зарегистрирован: 15.09.2004 (Ср) 14:26
Откуда: Россия, Тюмень

Сообщение Akella » 09.03.2006 (Чт) 17:30

это не совсем то, надо чтобы фона небыло в общем пиктуребоксе, а прзрачность была
Не бойся что не знаешь, бойся что не учишься.

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 09.03.2006 (Чт) 18:02

Akella писал(а):это не совсем то, надо чтобы фона небыло в общем пиктуребоксе, а прзрачность была

А там по твоему как? как раз без фона и с прозрачностью как была у тебя но с фоном :roll:
Если всё делать своими ручками, они скоро отвалятся !


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 50

    TopList