Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Прозрачность для объектов (не для самих форм) Добавлено: 17.08.08 12:36  

Автор вопроса:  werber | Web-сайт: www.werbersoft.ru
Здравствуйте. Нужен ваш совет. Мне нужно изменять прозрачность различных объектов внутри формы. Тоесть, например, чтобы лэйблы мнеяли прозрачность, кнопки и т.д.
Как это сделать?

Я тут в инете нашёл некоторый код, но он работает только с самой формой:

Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
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-сайт: www.doc-source.pp.net.ua/
 Профиль | | #1
Добавлено: 17.08.08 16:37
да действительно hwnd нету и быть не может так как лейбл это просто букофки нарисованые на форме

у меня есть гдето контрол типа лейбла если нада могу кинуть у него есть hwnd

Ответить

Номер ответа: 2
Автор ответа:
 werber



Вопросов: 71
Ответов: 112
 Web-сайт: www.werbersoft.ru
 Профиль | | #2
Добавлено: 17.08.08 17:31
Да, будь так добр. Щли на e-mail: werber@inbox.ru

Ответить

Номер ответа: 3
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #3
Добавлено: 17.08.08 18:00
Погодите) при чем тут hwnd вообще?)
Ты всё равно не сможешь этим способом изменить прозрачность объектов. Это возможно только для окон (как они там называются? окна верхнего уровня что ли.. не помню)
Есть такая тема как попиксельная прозрачность. На gdi+ и png рисунках можно ваять красивые вещи, только сложновато это.

Ответить

Номер ответа: 4
Автор ответа:
 Боцман



ICQ: 295725312 

Вопросов: 53
Ответов: 830
 Web-сайт: Rus-Skipper.narod.ru
 Профиль | | #4
Добавлено: 17.08.08 18:53
werber
Тоесть, например, чтобы лэйблы мнеяли прозрачность, кнопки и т.д.

 напиши свой контрол... или контролы, или ищи готовые.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам