VB6 - Zpřístupnění formuláře
Začínáme
Zde je stručný příklad, jak vytvořit formulář transparentní v jazyce Visual Basic.Poznámka: K tomu musí být zahrnuta paleta barev.
V modulu
Funkce soukromého deklarovat GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd as Long, ByVal nIndex jako dlouhý)Funkce soukromého deklarovat SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd as Long, ByVal nIndex jako dlouhý, ByVal dwNewLong jako dlouhý) Jako dlouhý
Funkce Private Declare SetLayeredWindowAttributes Lib "user32" (ByVal hWnd as Long, ByVal crKey jako dlouhý, ByVal bDefaut jako bajt, ByVal dwFlags jako dlouhý)
Soukromé Const GWL_EXSTYLE tak dlouho = (-20)
Soukromé Const LWA_COLORKEY As Long = & H1
Soukromé Const LWA_Defaut As Long = & H2
Soukromé Const WS_EX_LAYERED Jako dlouhé = & H80000
"
Transparentnost veřejných funkcí (ByVal hWnd tak dlouho, volitelné ByVal Col jako dlouhé = vbBlack, _
Volitelný ByVal PcTransp As Byte = 255, Volitelný ByVal TrMode jako booleovský = True) Jako logický
'Return: True, pokud není chyba.
'hWnd: hWnd okna, aby se transparentní
'Col: Barva, aby se průhledné, pokud TrMode = False
'PcTransp: 0 Ã 255 >> 0 = průhledné -: - 255 = neprůhledné
Vymazat DisplayStyle jako dlouhý
On Error GoTo Ukončete
VoirStyle = GetWindowLong (hWnd, GWL_EXSTYLE)
Pokud DisplayStyle (DisplayStyle Nebo WS_EX_LAYERED)
DisplayStyle = (DisplayStyle nebo WS_EX_LAYERED)
Volání SetWindowLong (hWnd, GWL_EXSTYLE, DisplayStyle)
Konec Pokud
Transparency = (SetLayeredWindowAttributes (hWnd, Col, PcTransp, IIf (TrMode, LWA_COLORKEY Nebo LWA_Defaut, LWA_COLORKEY)) 0)
Výstup:
Pokud ne Err.Number = 0 Pak Err.Clear
Funkce End
Public Sub ActiveTransparency (M jako formulář, d jako logický, F jako logický, _
T_Transparency jako celé číslo, volitelná barva jako dlouhá)
Dim B Jako logický
Pokud d a F pak
'Vytvoří průhlednou barvu (zde barvu pozadí)
'na hodnotu T_Transparency
B = Průhlednost (M.hWnd, Barva, T_Transparency, False)
Jinak d Potom
'Vytváří formulář, včetně všech komponent, transparentní
'na hodnotu T_Transparency
B = Průhlednost (M.hWnd, 0, T_Transparency, True)
Jiný
'Obnoví neprůhledný formulář.
B = Průhlednost (M.hWnd,, 255, pravda)
Konec Pokud
End Sub
Jak je použito ve formuláři
Formulář soukromých sub_Load ()Dim i jako celé číslo
„Ex: všechny transparentní v poměru 140/255
'ActiveTransparency Me, True, False, 140, Me.BackColor
'Ex: Vytvoření průhledné viditelné složky v poměru 140/255
'ActiveTransparency Me, True, True, 140, Me.BackColor
'Příklad zobrazení degradace formuláře
ActiveTransparency Me, True, False, 0
Me.Show
Pro i = 0 až 255 Krok 3
ActiveTransparency Me, True, False, i
Obnovit
Příště já
End Sub