VB6 - Zpřístupnění formuláře

Program v VB6 nebo Visual Basic 6 lze použít k vytvoření průhledného formuláře ve VB6 . Některé znalosti programovacích pojmů a jazyků, jako je jazyk Visual Basic, je vyžadováno, psát programy ve VB6. Základní znalosti o podprogramech, smyčkách if-else a Visual Basic jsou nezbytné pro zápis programů do VB6. Program, který má vytvořit průhledný formulář ve VB6, může být napsán pomocí VB6 funkcí, jako je funkce SetLayeredWindowAttributes a bitové operace, v uživatelsky definovaném podprogramu. Tento uživatelsky definovaný podprogram se nazývá událost formuláře v závislosti na načtení 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

Předchozí Článek Následující Článek

Nejlepší Tipy