VB6 - formos skaidrumas
Pradžia
Čia pateikiamas trumpas pavyzdys, kaip padaryti formą skaidrią „Visual Basic“.Pastaba: kad tai veiktų, turi būti įtraukta spalvų paletė.
Modulyje
Privatus deklaravimas Funkcija GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) kaip ilgas„Private Declare“ funkcija „SetWindowLong Lib“ user32 „Alias“ „SetWindowLongA“ (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) kaip ilgas
„Private Declare“ funkcija „SetLayeredWindowAttributes Lib“ user32 (ByVal hWnd As Long, ByVal crKey As Long, ByVal bDefaut kaip baitas, ByVal dwFlags As Long) As Long
Privatus Const GWL_EXSTYLE kaip ilgas = (-20)
Privatus Const LWA_COLORKEY Kaip ilgas = & H1
Privatus Const LWA_Defaut Kaip ilgas = & H2
Asmeninis Const WS_EX_LAYERED Kaip ilgas = & H80000
„
Viešųjų funkcijų skaidrumas (ByVal hWnd kaip ilgas, neprivalomas ByVal Col kaip ilgas = vbBlack, _
Neprivaloma ByVal PcTransp kaip baitas = 255, pasirinktinis ByVal TrMode kaip loginis = tikras) kaip loginis
„Grįžti: tiesa, jei nėra klaidos.
„hWnd: hWnd iš lango, kad padarytumėte skaidrią
„Col: Color“, kad būtų skaidrus, jei TrMode = False
„PcTransp: 0 Ã 255 >> 0 = skaidrus -: - 255 = nepermatomas
Dim DisplayStyle As Long
Klaida „GoTo Exit“
VoirStyle = GetWindowLong (hWnd, GWL_EXSTYLE)
Jei DisplayStyle (DisplayStyle arba WS_EX_LAYERED) tada
„DisplayStyle“ = („DisplayStyle“ arba „WS_EX_LAYERED“)
Skambučio nustatymasWindowLong (hWnd, GWL_EXSTYLE, DisplayStyle)
Baigti Jei
Skaidrumas = (SetLayeredWindowAttributes (hWnd, Col, PcTransp, IIf (TrMode, LWA_COLORKEY arba LWA_Defaut, LWA_COLORKEY)) 0)
Išeiti:
Jei ne Err.Number = 0 Tada Err.Clear
Pabaigos funkcija
Viešasis subaktyvus skaidrumas (M kaip forma, d kaip loginis, F kaip loginis, _
T_Transparency As Integer, pasirinktinė spalva kaip ilga)
Dim B kaip Boolean
Jei d ir F tada
„Padaro spalvą (čia fono spalvą) skaidrią
„pagal T_Transparency vertę
B = Skaidrumas (M.hWnd, Color, T_Transparency, False)
Dar kitaip, jei d
„Forma, įskaitant visus komponentus, yra skaidri
„pagal T_Transparency vertę
B = skaidrumas (M.hWnd, 0, T_Transparency, True)
Kitas
„Atkuria formą nepermatomą.
B = skaidrumas (M.hWnd,, 255, tiesa)
Baigti Jei
Pabaiga
Kaip naudojama formoje
Privatus poklasis_Load ()Dim i As Integer
„Pavyzdžiui: visi skaidrūs santykiu 140/255
„ActiveTransparency Me, True, False, 140, Me.BackColor
„Pavyzdys: Skaidri, matoma sudedamoji dalis 140/255
„ActiveTransparency Me, True, True, 140, Me.BackColor
„Pavyzdys rodo formos skaidrumo degradaciją
ActiveTransparency Me, True, False, 0
Parodyti
I = 0 iki 255 3 veiksmas
ActiveTransparency Me, True, False, i
Atnaujinkite
Kitas i
Pabaiga