VB6 - Gør en form gennemsigtig

Et program i VB6 eller Visual Basic 6 kan bruges til at gøre en form transparent i VB6 . Nogle kendskab til programmeringskoncepter og sprog som Visual Basic er nødvendig for at skrive programmer i VB6. Grundlæggende kendskab til subrutiner, if-else loops og Visual Basic-funktioner er nødvendige for at skrive programmer i VB6. Et program til at gøre en form gennemsigtig i VB6 kan skrives ved hjælp af VB6 funktioner som funktionen SetLayeredWindowAttributes og bitoperationer i en brugerdefineret subrutine. Denne brugerdefinerede subrutine kaldes en formularhændelse, afhængigt af formularen indlæser.

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å lang

Private 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

Forrige Artikel Næste Artikel

Top Tips