VB6 - Izrada transparentnog obrasca
Početak
Evo kratkog primjera kako napraviti obrazac transparentan u Visual Basicu.Napomena: paleta boja mora biti uključena da bi ovo funkcioniralo.
U modulu
Funkcija privatnog objavljivanja GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd Long, ByVal nIndex Long)Private Declare Funkcija SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd Long, ByVal nIndex Long, ByVal dwNewLong Long)
Funkcija privatnog deklariranja SetLayeredWindowAttributes Lib "user32" (ByVal hWnd kao dugo, ByVal crKey kao dugo, ByVal bDefaut kao bajt, ByVal dwFlags kao dugo) kao dugo
Privatna konstanta GWL_EXSTYLE Long = (-20)
Privatna konstanta LWA_COLORKEY Kao Long = & H1
Privatna konstanta LWA_Defaut Long = & H2
Privatni sastav WS_EX_LAYERED kao Long = & H80000
'
Javna funkcija transparentnosti (ByVal hWnd kao dugo, opcionalno ByVal Col kao dugo = vbBlack, _
Neobavezno ByVal PCTranspp kao bajt = 255, Izborno ByVal TrMode kao Boolean = True) Kao logički
'Povratak: Istina ako nema pogreške.
HWnd: hWnd od prozora kako bi transparentan
'Col: Boja koja će biti transparentna ako TrMode = False
'PcTransp: 0Ã 255 >> 0 = transparentan -: - 255 = Neprozirno
Dim DisplayStyle as Long
Na pogrešci GoTo Exit
VoirStyle = GetWindowLong (hWnd, GWL_EXSTYLE)
Ako je DisplayStyle (DisplayStyle ili WS_EX_LAYERED) Zatim
DisplayStyle = (DisplayStyle Ili WS_EX_LAYERED)
Poziv SetWindowLong (hWnd, GWL_EXSTYLE, DisplayStyle)
Završi ako
Transparentnost = (SetLayeredWindowAttributes (hWnd, Col, PcTransp, IIf (TrMode, LWA_COLORKEY Ili LWA_Defaut, LWA_COLORKEY))
Izlaz:
Ako nije Err.Number = 0 Zatim Err.Clear
Završna funkcija
Javna podaktivnost Transparentnost (M kao oblik, d kao logički, F kao logički, _
T_Transparentnost kao cijeli broj, opcionalna boja kao duga)
Dim B Kao logički
Ako d i F onda
'Boja (ovdje boja pozadine oblika) postaje prozirna
'po vrijednosti T_Transparency
B = transparentnost (M.hWnd, boja, T_ transparentnost, netočno)
Drugo tada
'Čini transparentan oblik, uključujući sve komponente
'po vrijednosti T_Transparency
B = Transparentnost (M.hWnd, 0, T_Transparency, True)
Drugo
'Vraća neprozirni oblik.
B = Transparentnost (M.hWnd,, 255, True)
Završi ako
Kraj pod
Kako se koristi u obliku
Privatni podlog Form_Load ()Dim i As Integer
Npr: sve transparentno u omjeru 140/255
'Aktivna transparentnost Me, True, False, 140, Me.BackColor
Primjer: Oblik prozirne, vidljive komponente u omjeru 140/255
'Aktivna transparentnost Me, True, True, 140, Me.BackColor
'Primjer prikazuje degradaciju prozirnosti obrasca
Aktivna transparentnost Me, True, False, 0
Me.Show
Za i = 0 do 255 Korak 3
Aktivna transparentnost Me, True, False, i
Me.Refresh
Sljedeće i
Kraj pod