Страница: 1 |
Страница: 1 |
Вопрос: Прозрачность для объектов (не для самих форм)
Добавлено: 17.08.08 12:36
Автор вопроса: werber | Web-сайт:
Здравствуйте. Нужен ваш совет. Мне нужно изменять прозрачность различных объектов внутри формы. Тоесть, например, чтобы лэйблы мнеяли прозрачность, кнопки и т.д.
Как это сделать?
Я тут в инете нашёл некоторый код, но он работает только с самой формой:
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
Const GWL_EXSTYLE = (-20)
Const WS_EX_LAYERED = &H80000
Const LWA_ALPHA = &H2
Private Sub SetTransparent(hwnd As Long, Layered As Byte)
Dim Ret As Long
Ret = GetWindowLong(hwnd, GWL_EXSTYLE)
Ret = Ret Or WS_EX_LAYERED
SetWindowLong hwnd, GWL_EXSTYLE, Ret
SetLayeredWindowAttributes hwnd, 0, Layered, LWA_ALPHA
End Sub
Private Sub HScroll1_Change()
(*) SetTransparent Form1.hwnd, Int(255 * HScroll1.Value / 100)
End Sub
Private Sub HScroll1_Scroll()
(*) SetTransparent Form1.hwnd, Int(255 * HScroll1.Value / 100)
End Sub
Дело в том что заменить в строчках со звёздочками Form1.hwnd на Label1.hwnd невозможно (у Label1 нету свойства hwnd).
Знаю, на vb 2008 есть свойство TransparentKey, но я пишу на vb 6.0 и времени на переход в vb 2008 у меня нет (это я так, чтобы лучше была понятна ситуация :-) ).
Жду ваших советов...
Ответы
Всего ответов: 4
Номер ответа: 1
Автор ответа:
D o c a l
ICQ: 408802757
Вопросов: 76
Ответов: 985
Web-сайт:
Профиль | | #1
Добавлено: 17.08.08 16:37
да действительно hwnd нету и быть не может так как лейбл это просто букофки нарисованые на форме
у меня есть гдето контрол типа лейбла если нада могу кинуть у него есть hwnd
Номер ответа: 2
Автор ответа:
werber
Вопросов: 71
Ответов: 112
Web-сайт:
Профиль | | #2
Добавлено: 17.08.08 17:31
Да, будь так добр. Щли на e-mail: werber@inbox.ru
Номер ответа: 3
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #3
Добавлено: 17.08.08 18:00
Погодите) при чем тут hwnd вообще?)
Ты всё равно не сможешь этим способом изменить прозрачность объектов. Это возможно только для окон (как они там называются? окна верхнего уровня что ли.. не помню)
Есть такая тема как попиксельная прозрачность. На gdi+ и png рисунках можно ваять красивые вещи, только сложновато это.
Номер ответа: 4
Автор ответа:
Боцман
ICQ: 295725312
Вопросов: 53
Ответов: 830
Web-сайт:
Профиль | | #4
Добавлено: 17.08.08 18:53
werber
напиши свой контрол... или контролы, или ищи готовые.