VB6 - Izrada transparentnog obrasca

Program u VB6 ili Visual Basic 6 može se koristiti za izradu prozirnog obrasca u VB6 . Potrebno je poznavanje programskih koncepata i jezika kao što je Visual Basic za pisanje programa u VB6. Osnovno znanje potprograma, if-else petlje i Visual Basic funkcije potrebne su za pisanje programa u VB6. Program za izradu prozirnog obrasca u VB6 može se napisati pomoću funkcija VB6 kao što je funkcija SetLayeredWindowAttributes i operacije bita, u korisničkom potprogramu. Ovaj korisnički definirani potprogram naziva se događaj obrasca, ovisno o tome kada se obrazac učitava.

Početak

Evo kratkog primjera kako napraviti obrazac transparentan u Visual Basicu.

Napomena: paleta boja mora biti uključena da bi ovo funkcioniralo.

U modulu

 Funkcija privatnog objavljivanja GetWindowLong Lib "user32" Alias ​​"GetWindowLongA" (ByVal hWnd Long, ByVal nIndex Long)

Private Declare Funkcija SetWindowLong Lib "user32" Alias ​​"SetWindowLongA" (ByVal hWnd Long, ByVal nIndex Long, ByVal dwNewLong Long)

Funkcija privatnog deklariranja SetLayeredWindowAttributes Lib "user32" (ByVal hWnd kao dugo, ByVal crKey kao dugo, ByVal bDefaut kao bajt, ByVal dwFlags kao dugo) kao dugo

Privatna konstanta GWL_EXSTYLE Long = (-20)

Privatna konstanta LWA_COLORKEY Kao Long = & H1

Privatna konstanta LWA_Defaut Long = & H2

Privatni sastav WS_EX_LAYERED kao Long = & H80000

'

Javna funkcija transparentnosti (ByVal hWnd kao dugo, opcionalno ByVal Col kao dugo = vbBlack, _

Neobavezno ByVal PCTranspp kao bajt = 255, Izborno ByVal TrMode kao Boolean = True) Kao logički

'Povratak: Istina ako nema pogreške.

HWnd: hWnd od prozora kako bi transparentan

'Col: Boja koja će biti transparentna ako TrMode = False

'PcTransp: 0Ã 255 >> 0 = transparentan -: - 255 = Neprozirno

Dim DisplayStyle as Long

Na pogrešci GoTo Exit

VoirStyle = GetWindowLong (hWnd, GWL_EXSTYLE)

Ako je DisplayStyle (DisplayStyle ili WS_EX_LAYERED) Zatim

DisplayStyle = (DisplayStyle Ili WS_EX_LAYERED)

Poziv SetWindowLong (hWnd, GWL_EXSTYLE, DisplayStyle)

Završi ako

Transparentnost = (SetLayeredWindowAttributes (hWnd, Col, PcTransp, IIf (TrMode, LWA_COLORKEY Ili LWA_Defaut, LWA_COLORKEY))

Izlaz:

Ako nije Err.Number = 0 Zatim Err.Clear

Završna funkcija

Javna podaktivnost Transparentnost (M kao oblik, d kao logički, F kao logički, _

T_Transparentnost kao cijeli broj, opcionalna boja kao duga)

Dim B Kao logički

Ako d i F onda

'Boja (ovdje boja pozadine oblika) postaje prozirna

'po vrijednosti T_Transparency

B = transparentnost (M.hWnd, boja, T_ transparentnost, netočno)

Drugo tada

'Čini transparentan oblik, uključujući sve komponente

'po vrijednosti T_Transparency

B = Transparentnost (M.hWnd, 0, T_Transparency, True)

Drugo

'Vraća neprozirni oblik.

B = Transparentnost (M.hWnd,, 255, True)

Završi ako

Kraj pod

Kako se koristi u obliku

 Privatni podlog Form_Load ()

Dim i As Integer

Npr: sve transparentno u omjeru 140/255

'Aktivna transparentnost Me, True, False, 140, Me.BackColor

Primjer: Oblik prozirne, vidljive komponente u omjeru 140/255

'Aktivna transparentnost Me, True, True, 140, Me.BackColor

'Primjer prikazuje degradaciju prozirnosti obrasca

Aktivna transparentnost Me, True, False, 0

Me.Show

Za i = 0 do 255 Korak 3

Aktivna transparentnost Me, True, False, i

Me.Refresh

Sljedeće i

Kraj pod

Prethodni Članak Sljedeći Članak

Top Savjeta