VB6 - Izdelava preglednega obrazca
Prvi koraki
Tukaj je kratek primer, kako narediti obliko pregledno v Visual Basicu.Opomba: Za to mora biti vključena barvna paleta.
V modulu
Funkcija za zasebno izjavo GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd Long, ByVal nIndex Long)Zasebna izjava Funkcija SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex Long, ByVal dwNewLong Long)
Funkcija za zasebno deklaracijo SetLayeredWindowAttributes Lib "user32" (ByVal hWnd As Long, ByVal crKey as Long, ByVal bDefaut As Byte, ByVal dwFlags As Long)
Zasebna zgradba GWL_EXSTYLE Kot dolga = (-20)
Zasebna zgradba LWA_COLORKEY Kot dolga = & H1
Zasebna zgradba LWA_Defaut kot dolga = & H2
Zasebna zgradba WS_EX_LAYERED Kot dolga = & H80000
"
Transparentnost javne funkcije (ByVal hWnd kot dolga, neobvezno ByVal Col kot dolg = vbBlack, _
Neobvezno ByVal PscTransp Kot Byte = 255, Neobvezno ByVal TrMode Kot Boolean = True) Kot logično
'Vrni: True, če ni napake.
hWnd: hWnd okna, da postane pregleden
'Col: Barva, da postane transparentna, če je TrMode = False
PcTransp: 0 Ã 255 >> 0 = transparentno -: - 255 = Neprozorno
Dim DisplayStyle as Long
Na napaki GoTo Exit
VoirStyle = GetWindowLong (hWnd, GWL_EXSTYLE)
Če je DisplayStyle (DisplayStyle ali WS_EX_LAYERED) Nato
DisplayStyle = (DisplayStyle ali WS_EX_LAYERED)
Klic SetWindowLong (hWnd, GWL_EXSTYLE, DisplayStyle)
End If
Transparentnost = (SetLayeredWindowAttributes (hWnd, Col, PcTransp, IIf (TrMode, LWA_COLORKEY ali LWA_Defaut, LWA_COLORKEY))
Izhod:
Če ni Err.Number = 0 Potem Err.Clear
Končna funkcija
Javna pod aktivna transparentnost (M kot oblika, d kot logična, F kot logična,
T_prozornost kot celo število, neobvezna barva kot dolga)
Dim B Kot logično
Če d in F nato
'Barva (tukaj barva ozadja oblike) postane prozorna
'po vrednosti T_Transparency
B = Prosojnost (M.hWnd, Color, T_Transparency, False)
V nadaljevanju
„Ustvari pregledno obliko, vključno z vsemi komponentami
'po vrednosti T_Transparency
B = Transparentnost (M.hWnd, 0, T_Transparency, True)
Drugače
'Obnavlja neprosojno obliko.
B = Prosojnost (M.hWnd,, 255, True)
End If
End Sub
Kot se uporablja v obliki
Zasebna podvrsta Form_Load ()Dim i As Integer
'Ex: vsi prosojni pri razmerju 140/255
'Aktivna transparentnost Me, True, False, 140, Me.BackColor
'Npr .: Oblika pregledne, vidne komponente v razmerju 140/255
'Aktivna transparentnost Me, True, True, 140, Me.BackColor
'Primer prikaže degradacijo preglednosti obrazca
Aktivna transparentnost Me, True, False, 0
Me.Show
Za i = 0 do 255 3. korak
Aktivna transparentnost Me, True, False, i
Osveži
Naprej i
End Sub