VB6 - vormi läbipaistvaks muutmine
Alustamine
Siin on lühike näide sellest, kuidas muuta vorm Visual Basicis läbipaistvaks.Märkus: Selleks, et see toimiks, tuleb lisada värvipalett.
Moodulis
Eraldi deklareerige funktsioon GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd nii kaua, ByVal nIndex nii kaua) kui pikkPrivate Declare Funktsioon SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd nii kaua, ByVal nIndex kui pikk, ByVal dwNewLong nii kaua) kui pikk
Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hWnd nii kaua, ByVal crKey nii kaua, ByVal bDefaut kui bait, ByVal dwFlags As Long) kui pikk
Privaatne Const GWL_EXSTYLE nii kaua = (-20)
Privaatne Const LWA_COLORKEY Nagu pikk = & H1
Private Const LWA_Defaut Nii kaua = & H2
Privaatne Const WS_EX_LAYERED nii kaua = & H80000
'
Avalike funktsioonide läbipaistvus (ByVal hWnd nii pikk, valikuline ByVal Col nii kaua = vbBlack, _
Valikuline ByVal PcTransp kui bait = 255, valikuline ByVal TrMode kui loogiline = tõene) kui loogiline
'Return: True, kui viga ei ole.
hWnd: hKas akna läbipaistvus
„Col: Color, et muuta läbipaistev, kui TrMode = False
'PcTransp: 0 Ã 255 >> 0 = läbipaistev -: - 255 = läbipaistmatu
Dim DisplayStyle As Long
Viga GoTo Exit
VoirStyle = GetWindowLong (hWnd, GWL_EXSTYLE)
Kui DisplayStyle (DisplayStyle või WS_EX_LAYERED) siis kuvatakse
DisplayStyle = (DisplayStyle või WS_EX_LAYERED)
Helista SetWindowLong (hWnd, GWL_EXSTYLE, DisplayStyle)
Lõpeta kui
Läbipaistvus = (SetLayeredWindowAttributes (hWnd, Col, PcTransp, IIf (TrMode, LWA_COLORKEY või LWA_Defaut, LWA_COLORKEY)) 0)
Välju:
Kui ei ole viga.Number = 0, siis Err.Clear
Lõppfunktsioon
Avalik subaktiivne läbipaistvus (M kui vorm, d kui loogiline, F kui loogiline, _
T_Transparency tervikuna, valikuline värvus pikk
Dim B kui loogiline
Kui d ja F siis
„Muudab värvi (siin kuju taustavärvi) läbipaistvaks
'T_Transparency väärtuse järgi
B = läbipaistvus (M.hWnd, Color, T_Transparency, False)
Kui te siis d
„Muudab vormi, sealhulgas kõik komponendid, läbipaistvaks
'T_Transparency väärtuse järgi
B = läbipaistvus (M.hWnd, 0, T_Transparency, True)
Veel üks
'Taastab vormi läbipaistmatu.
B = läbipaistvus (M.hWnd,, 255, tõene)
Lõpeta kui
Lõpeta alam
Nagu kasutatakse vormis
Privaatne alamvorm_Load ()Dim i As Integer
„Näide: kõik läbipaistvad suhtega 140/255
'ActiveTransparency Me, True, False, 140, Me.BackColor
Näide: Vorm läbipaistva, nähtava komponendi suhe 140/255
'ActiveTransparency Me, True, True, 140, Me.BackColor
Näide näitab vormi läbipaistvuse halvenemist
ActiveTransparency Me, True, False, 0
Näita
I = 0 kuni 255 etapp 3
ActiveTransparency Me, True, False, i
Me uuendada
Järgmine i
Lõpeta alam