VB6 - Rendere trasparente un modulo

Un programma in VB6 o Visual Basic 6 può essere utilizzato per rendere trasparente un modulo in VB6 . È necessaria una certa conoscenza di concetti e linguaggi di programmazione come Visual Basic, per scrivere programmi in VB6. Conoscenze di base di subroutine, loop if-else e funzioni di Visual Basic sono necessarie per scrivere programmi in VB6. Un programma per rendere trasparente un modulo in VB6 può essere scritto utilizzando le funzioni VB6 come la funzione SetLayeredWindowAttributes e le operazioni bit, in una subroutine definita dall'utente. Questa subroutine definita dall'utente verrà chiamata evento modulo, a seconda del caricamento del modulo.

Iniziare

Ecco un breve esempio di come rendere trasparente un modulo in Visual Basic.

Nota: è necessario includere una tavolozza di colori affinché funzioni.

In un modulo

 Funzione dichiarazione privata GetWindowLong Lib "user32" Alias ​​"GetWindowLongA" (ByVal hWnd As long, ByVal nIndex As Long) As Long

Funzione di dichiarazione privata SetWindowLong Lib "user32" Alias ​​"SetWindowLongA" (ByVal hWnd As long, ByVal nIndex As long, ByVal dwNewLong As Long) As Long

Funzione di dichiarazione privata SetLayeredWindowAttributes Lib "user32" (ByVal hWnd As Long, ByVal crKey As Long, ByVal bDefaut As Byte, ByVal dwFlags As Long) As Long

Const privato GWL_EXSTYLE As Long = (-20)

Const privata LWA_COLORKEY As Long = & H1

Const privato LWA_Defaut As Long = & H2

Const privato WS_EX_LAYERED As Long = & H80000

'

Trasparenza delle funzioni pubbliche (ByVal hWnd As Long, Opzionali ByVal Col As Long = vbBlack, _

Opzionale ByVal PcTransp As Byte = 255, Opzionale ByVal TrMode As Boolean = True) As Boolean

'Return: True se non ci sono errori.

'hWnd: hWnd della finestra per rendere trasparente

'Col: Colore da rendere trasparente se TrMode = False

'PcTransp: 0 Ã 255 >> 0 = trasparente -: - 255 = opaco

Dim DisplayStyle As Long

On Error GoTo Exit

VoirStyle = GetWindowLong (hWnd, GWL_EXSTYLE)

Se DisplayStyle (DisplayStyle o WS_EX_LAYERED) Quindi

DisplayStyle = (DisplayStyle o WS_EX_LAYERED)

Chiama SetWindowLong (hWnd, GWL_EXSTYLE, DisplayStyle)

Finisci se

Transparency = (SetLayeredWindowAttributes (hWnd, Col, PcTransp, IIf (TrMode, LWA_COLORKEY o LWA_Defaut, LWA_COLORKEY)) 0)

Uscita:

Se non Err.Number = 0 Then Err.Clear

Fine Funzione

Public Sub ActiveTransparency (M As Form, d As Boolean, F As Boolean, _

T_Transparency As Integer, Opzionale Color As Long)

Dim B As Boolean

Se d E F allora

'Rende trasparente il colore (qui il colore di sfondo della forma)

'in base al valore di T_Transparency

B = Trasparenza (M.hWnd, Colore, T_Transparency, False)

Altrimenti d allora

'Rende trasparente la forma, inclusi tutti i componenti

'in base al valore di T_Transparency

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

Altro

'Ripristina la forma opaca.

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

Finisci se

End Sub

Come usato in una forma

 Private Sub Form_Load ()

Dim i As Integer

'Es: tutto trasparente con rapporto 140/255

'ActiveTransparency Me, True, False, 140, Me.BackColor

'Es: forma componente trasparente, visibile in rapporto 140/255

'ActiveTransparency Me, True, True, 140, Me.BackColor

'Esempio mostra la degradazione della trasparenza del modulo

ActiveTransparency Me, True, False, 0

Me.Show

Per i = 0 a 255 Passaggio 3

ActiveTransparency Me, True, False, io

Me.Refresh

Avanti

End Sub

Articolo Precedente Articolo Successivo

I Migliori Consigli