VB6 - Gør en form gennemsigtig
Kom i gang
Her er et kort eksempel på, hvordan du gør en form transparent i Visual Basic.Bemærk: Der skal medtages en farvepalet for at dette skal fungere.
I et modul
Privat erklære funktion GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd så lang, ByVal nIndex så lang) Så langPrivate Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd så lang, ByVal nIndex så lang, ByVal dwNewLong så lang) Så lang
Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hWnd så lang, ByVal crKey så lang, ByVal bDefaut som Byte, ByVal dwFlags så lang) Som Long
Privat Const GWL_EXSTYLE så lang = (-20)
Privat Const LWA_COLORKEY Så lang = & H1
Privat Const LWA_Defaut så lang = & H2
Privat Const WS_EX_LAYERED Så lang = & H80000
'
Offentlig funktion Gennemsigtighed (ByVal hWnd så lang, Valgfri AfVal kol så lang = vbBlack, _
Valgfri ByVal PcTransp Som Byte = 255, Valgfri ByVal TrMode Som Boolean = True) Som Boolean
'Retur: Sandt, hvis der ikke er nogen fejl.
'hWnd: hWnd af vinduet for at gøre gennemsigtigt
'Kol: Farve til gennemsigtig hvis TrMode = False
'PcTransp: 0 Ã 255 >> 0 = gennemsigtig -: - 255 = Uigennemsigtig
Dim DisplayStyle så lang
På fejl gå ud af
VoirStyle = GetWindowLong (hWnd, GWL_EXSTYLE)
Hvis DisplayStyle (DisplayStyle eller WS_EX_LAYERED) derefter
DisplayStyle = (DisplayStyle eller WS_EX_LAYERED)
Ring SetWindowLong (hWnd, GWL_EXSTYLE, DisplayStyle)
Afslut Hvis
Gennemsigtighed = (SetLayeredWindowAttributes (hWnd, Col, PcTransp, IIf (TrMode, LWA_COLORKEY eller LWA_Defaut, LWA_COLORKEY)) 0)
Afslut:
Hvis ikke Err.Number = 0 Så Err.Clear
Slutfunktion
Offentlig SubaktivTransparens (M Som Form, d Som Boolean, F Som Boolean, _
T_Transparency As Integer, valgfri farve så lang)
Dim B Som Boolean
Hvis d og f derefter
'Gør farve (her baggrundsfarven på formen) gennemsigtig
'på værdi af T_Transparency
B = Transparens (M.hWnd, Farve, T_Transparency, False)
Else Hvis du derefter
'Gør form, herunder alle komponenter, gennemsigtig
'på værdi af T_Transparency
B = Transparens (M.hWnd, 0, T_Transparency, True)
Andet
'Gendanner formularen uigennemsigtig.
B = Transparens (M.hWnd,, 255, True)
Afslut Hvis
Slutdel
Som brugt i en formular
Privat Sub Form_Load ()Dim jeg som helhed
'Ex: alle gennemsigtige i forholdet 140/255
'Active Transparency Me, True, False, 140, Me.BackColor
'Ex: Form transparent, synlig komponent i forholdet 140/255
'Active Transparency Me, True, True, 140, Me.BackColor
'Eksempel viser formens gennemsigtighedsforringelse
ActiveTransparency Me, True, False, 0
Me.Show
For i = 0 til 255 trin 3
ActiveTransparency Me, True, False, jeg
Me.Refresh
Næste jeg
Slutdel