VB6 - Оформяне на формуляр прозрачен
Приготвяме се да започнем
Ето кратък пример как да направите прозрачна форма във Visual Basic.Забележка: За да работи това, трябва да се включи цветова палитра.
В модул
Частна декларираща функция GetWindowLong Lib "user32" Псевдоним "GetWindowLongA" (ByVal hWnd Long, ByVal nIndex Long)Частна декларираща функция SetWindowLong Lib "user32" Псевдоним "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex Long, ByVal dwNewLong Long)
Частна декларираща функция SetLayeredWindowAttributes Lib "user32" (ByVal hWnd като дълъг, ByVal crKey като дълъг, ByVal bDefaut като Byte, ByVal dwFlags As Long)
Частни конституирани GWL_EXSTYLE Дълги = (-20)
Частни константи LWA_COLORKEY Като Long = & H1
Частна константа LWA_Defaut As Long = & H2
Частни константи WS_EX_LAYERED Като Long = & H80000
"
Прозрачност на публичната функция (ByVal hWnd като дълъг, опционален от ByVal Col като Long = vbBlack, _
Незадължително ByVal PcTransp As Byte = 255, Незадължително ByVal TrMode като Boolean = True) Като булева
'Връщане: Вярно, ако няма грешка.
hWnd: hWnd на прозореца, за да стане прозрачен
Col: Цветът е прозрачен, ако TrMode = False
'PcTransp: 0 Ã 255 >> 0 = прозрачен -: - 255 = Непрозрачно
Дим на дисплея като дълъг
При грешка GoTo Exit
VoirStyle = GetWindowLong (hWnd, GWL_EXSTYLE)
Ако DisplayStyle (DisplayStyle или WS_EX_LAYERED) След това
DisplayStyle = (DisplayStyle Или WS_EX_LAYERED)
Повикване на SetWindowLong (hWnd, GWL_EXSTYLE, DisplayStyle)
Край Ако
Прозрачност = (SetLayeredWindowAttributes (hWnd, Col, PcTransp, IIf (TrMode, LWA_COLORKEY Или LWA_Defaut, LWA_COLORKEY))
Изход:
Ако не е Err.Number = 0 Тогава Err.Clear
Крайна функция
Публична подактивна прозрачност (M като форма, d като булева, F като булева, _
T_Прозрачност като цяло число, опционален цвят като дълъг)
Dim B Като булева
Ако d и F тогава
„Прозрачен е цветът (тук цвета на фона на формата)
'при стойност на T_Transparency
B = Прозрачност (M.hWnd, Color, T_Transparency, False)
Различно тогава
„Оформя прозрачна форма, включително всички компоненти
'при стойност на T_Transparency
B = Прозрачност (M.hWnd, 0, T_Transparency, True)
още
Възстановява непрозрачната форма.
B = Прозрачност (M.hWnd,, 255, True)
Край Ако
Край Под
Както се използва във форма
Частна подправка Form_Load ()Dim i As Integer
Ex: всички прозрачни при съотношение 140/255
Активна прозрачност Me, True, False, 140, Me.BackColor
Пример: Форма прозрачен, видим компонент в съотношение 140/255
Активна прозрачност Me, True, True, 140, Me.BackColor
'Пример показва разграждането на прозрачността на формата
Активна прозрачност Me, True, False, 0
Me.Show
За i = 0 до 255 Стъпка 3
Активна прозрачност Me, True, False, i
Me.Refresh
Следващ i
Край Под