VB6 - veidlapas pārredzamība
Darba sākšana
Šeit ir īss piemērs tam, kā veidlapu Visual Basic padarīt caurspīdīgu.Piezīme: Lai tas darbotos, ir jāiekļauj krāsu palete.
Modulī
Privātās deklarēšanas funkcija GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) kā garšPrivate Declare Funkcija SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Funkcija SetLayeredWindowAttributes Lib "user32" (ByVal hWnd As Long, ByVal crKey As Long, ByVal bDefaut kā baits, ByVal dwFlags As Long) As Long
Privāts Const GWL_EXSTYLE tik ilgi = (-20)
Privāts Const LWA_COLORKEY Tik ilgi = & H1
Privāts Const LWA_Defaut Tik ilgi = & H2
Privāts Const WS_EX_LAYERED kā garš = & H80000
'
Publisko funkciju caurspīdīgums (ByVal hWnd As Long, Optional ByVal Col As Long = vbBlack, _
Neobligāts ByVal PcTransp kā baits = 255, neobligāts ByVal TrMode kā Būla = True) Kā Būla
'Atgriezties: taisnība, ja nav kļūdu.
'hWnd: hWnd no loga, lai padarītu pārredzamu
“Col: Color, lai padarītu pārredzamu, ja TrMode = False
'PcTransp: 0 Ã 255 >> 0 = caurspīdīgs -: - 255 = necaurspīdīgs
Dim DisplayStyle As Long
Kļūda GoTo Exit
VoirStyle = GetWindowLong (hWnd, GWL_EXSTYLE)
Ja DisplayStyle (DisplayStyle vai WS_EX_LAYERED) tad
DisplayStyle = (DisplayStyle vai WS_EX_LAYERED)
Zvanu iestatīšanaWindowLong (hWnd, GWL_EXSTYLE, DisplayStyle)
Beigas Ja
Caurspīdīgums = (SetLayeredWindowAttributes (hWnd, Col, PcTransp, IIf (TrMode, LWA_COLORKEY vai LWA_Defaut, LWA_COLORKEY)) 0)
Izeja:
Ja tas nav Err.Number = 0 Tad Err.Clear
Beigu funkcija
Publiskā subaktīvā pārredzamība (M kā forma, d kā Būla, F kā Būla, _
T_Transparency As Integer, pēc izvēles izvēles iespēja
Dim B kā Būla
Ja d un F tad
'Padara krāsu (šeit formas fona krāsu) caurspīdīgu
'pēc T_Transparency vērtības
B = Caurspīdīgums (M.hWnd, Color, T_Transparency, False)
Ja vēlaties, tad
“Pārveido veidlapu, ieskaitot visus komponentus
'pēc T_Transparency vērtības
B = caurspīdīgums (M.hWnd, 0, T_Transparency, True)
Vēl
'Atjauno formu necaurspīdīgu.
B = Caurspīdīgums (M.hWnd,, 255, True)
Beigas Ja
Beigt Sub
Kā izmantots formā
Privāta apakšforma_Load ()Dim i As Integer
“Piem.: Visi caurspīdīgi proporcijā 140/255
'ActiveTransparency Me, True, False, 140, Me.BackColor
“Piem .: veidojiet caurspīdīgu, redzamu sastāvdaļu ar attiecību 140/255
'ActiveTransparency Me, True, True, 140, Me.BackColor
'Piemērs parāda formas pārredzamības degradāciju
ActiveTransparency Me, True, False, 0
Parādiet
Par i = 0 līdz 255 3. solis
ActiveTransparency Me, True, False, i
Me.Refresh
Nākamais i
Beigt Sub