Ir para o conteúdo

Formulários Translúcidos

Criar um módulo novo e adicionar o seguinte código:

Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal Hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal Hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long

Public Const GWL_EXSTYLE = -20
Public Const WS_EX_LAYERED = &H80000
Public Const LWA_ALPHA = &H2

Sub MakeTransparent(ByRef Hwnd As Long, ByRef Transparencia As Byte)

 SetWindowLong Hwnd, GWL_EXSTYLE, WS_EX_LAYERED
 SetLayeredWindowAttributes Hwnd, 0, Transparencia, LWA_ALPHA

End Sub

As instruções Public Declare são as APIs necessárias para criar a transparência nas janelas.

As instruções Public Const são as constantes necessárias para passar às APIs para que possam criar o efeito de transparência.

Após crido o módulo, adicionar um CommandButton no formulário principal e adicionar o seguinte:

Private Sub Command1_Click()
 MakeTransparent Me.Hwnd, 50
End Sub

O número 50 pode ser substituído por qualquer valor entre 0 e 255 e serve para dizer o quão transparente queremos o formulário. Quanto menor o valor, maior a transparência.

Nota

hWnd é o window handle, da janela a ser aplicada a transparência. O window handle é uma espécie de endereço que o sistema operativo utiliza para poder fazer operações com janelas. Cada janela tem um endereço window handle único.

Outros recursos