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.