VB6 - Efectuarea unei forme transparente

Un program în VB6 sau Visual Basic 6 poate fi folosit pentru a face o formă transparentă în VB6 . Unele cunoștințe despre concepte de programare și limbi precum Visual Basic sunt necesare, pentru a scrie programe în VB6. Cunoștințele de bază ale subrutinelor, dacă sunt necesare circuite și funcții Visual Basic pentru a scrie programe în VB6. Un program pentru a face o formă transparentă în VB6 poate fi scris utilizând funcții VB6 precum funcția SetLayeredWindowAttributes și operațiile de biți într-o subrutină definită de utilizator. Această subrutină definită de utilizator va fi denumită un eveniment de formular, în funcție de încărcarea formularului.

Noțiuni de bază

Iată un scurt exemplu despre cum să faceți o formă transparentă în Visual Basic.

Notă: Trebuie să includă o paletă de culori pentru ca aceasta să funcționeze.

Într-un modul

 Funcția privată de declare GetWindowLong Lib "user32" Alias ​​"GetWindowLongA" (ByVal hWnd cât mai lung, ByVal nIndex la fel de lung)

Funcția privată declară SetWindowLong Lib "user32" Alias ​​"SetWindowLongA" (ByVal hWnd atât de lung, ByVal nIndex ca lung, ByVal dwNewLong la fel de lung)

Funcția de declare privată SetLayeredWindowAttributes Lib "user32" (ByVal hWnd cât mai lung, ByVal crKey la fel de lung, ByVal bDefaut ca byte, ByVal dwFlags cât de lung)

Constă privată GWL_EXSTYLE Pe termen lung = (-20)

Constă privată LWA_COLORKEY As Long = & H1

Private Const LWA_Defaut ca lung = & H2

Constrat privat WS_EX_LAYERED As Long = & H80000

'

Transparența funcțiilor publice (ByVal hWnd cât mai lung, opțional ByVal Col As Long = vbBlack, _

Opțional ByVal PcTransp ca octet = 255, ByVal TrMode opțional ca boolean = adevărat) Ca boolean

'Return: Adevărat dacă nu există nici o eroare.

În partea de jos a ferestrei pentru a face transparente

'Col: Culoare pentru a deveni transparent dacă TrMode = False

'PcTransp: 0 Ã 255 >> 0 = transparent -: - 255 = Opac

Dim DisplayStyle la fel de lung

La eroare Ieșiți la ieșire

VoirStyle = GetWindowLong (hWnd, GWL_EXSTYLE)

Dacă DisplayStyle (DisplayStyle sau WS_EX_LAYERED) Apoi

DisplayStyle = (DisplayStyle sau WS_EX_LAYERED)

Apelați SetWindowLong (hWnd, GWL_EXSTYLE, DisplayStyle)

Terminați Dacă

Transparență = (SetLayeredWindowAttributes (hWnd, Col, PcTransp, IIf (TrMode, LWA_COLORKEY sau LWA_Defaut, LWA_COLORKEY)) 0)

Ieșire:

Dacă Not Err.Number = 0 Apoi Err.Clear

Terminați funcția

Public Sub ActiveTransparency (M ca formă, d ca boolean, F ca boolean, _

T_Transparență ca intreg, culoare opțională la fel de lungă)

Dim B ca boolean

Dacă d Și F Apoi

"Face culoarea (aici culoarea de fundal a formei) transparentă

"la valoarea T_Transparență

B = Transparență (M.hWnd, Culoare, T_Transparență, Falsă)

Altfel, atunci

"Face ca formularul, inclusiv toate componentele, să fie transparent

"la valoarea T_Transparență

B = Transparență (M.hWnd, 0, T_Transparență, True)

altfel

"Restabilește forma opacă.

B = Transparență (M.hWnd,, 255, True)

Terminați Dacă

End Sub

Așa cum se utilizează într-o formă

 Private Sub Form_Load ()

Dim i ca intreg

Ex: toate transparente la raportul 140/255

'ActiveTransparency Me, Adevărat, Fals, 140, Me.BackColor

Ex: Formați o componentă transparentă, vizibilă la raportul 140/255

'ActiveTransparency Me, Adevărat, Adevărat, 140, Me.BackColor

"Exemplu afișează degradarea transparenței formularului

ActiveTransparency Me, Adevărat, Fals, 0

Me.Show

Pentru i = 0 Pentru 255 Pasul 3

ActiveTransparency Me, Adevărat, Fals, i

Me.Refresh

Apoi eu

End Sub

Articolul Precedent Articolul Următor

Cele Mai Importante Sfaturi