DEIXAR FORM TRANSPARENTE APENAS O FORM

DANLEONHART 21/08/2012 11:45:40
#408264
Pessoal...

Quais API[ô]s uso para deixar o Form transparente e os controles (Textboxes, Buttons, Lists...) visiveis...
Encontrei um exemplo aqui no VBMania mas só funcionava no exemplo do cara...em meus Form[ô]s não rolou...fiz até um novo projeto e testei com as APIs[ô] que ele passou mas sem sucesso.

Deixar o Form e os controles eu tenho em um módulo...mas apenas o Form não encontrei na NET.
DANLEONHART 21/08/2012 14:31:15
#408281
Esse é bem estranho...vou continuar procurando um com código mais legível...mas funciona...desde que não coloque Image....

Valeu !
DANLEONHART 21/08/2012 15:03:08
#408286
Valeu Marcelo !
Achei esse aqui perfeito e funcional !

Private Declare Function GetWindowLong Lib [Ô]user32[Ô] Alias [Ô]GetWindowLongA[Ô] ( _
ByVal hwnd As Long, _
ByVal nIndex As Long) As Long

Private Declare Function SetWindowLong Lib [Ô]user32[Ô] Alias [Ô]SetWindowLongA[Ô] ( _
ByVal hwnd As Long, _
ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long

Private Declare Function SetLayeredWindowAttributes Lib [Ô]user32[Ô] ( _
ByVal hwnd As Long, _
ByVal crKey As Long, _
ByVal bAlpha As Byte, _
ByVal dwFlags As Long) As Long

Private Const GWL_STYLE = (-16)
Private Const GWL_EXSTYLE = (-20)
Private Const WS_EX_LAYERED = &H80000
Private Const LWA_COLORKEY = &H1
Private Const LWA_ALPHA = &H2

Private Sub Form_Load()
Me.BackColor = vbCyan
SetWindowLong Me.hwnd, GWL_EXSTYLE, GetWindowLong(Me.hwnd, GWL_EXSTYLE) Or WS_EX_LAYERED
SetLayeredWindowAttributes Me.hwnd, vbCyan, 0&, LWA_COLORKEY
End Sub


Fica para futuros usuários que procuram o mesmo !
Tópico encerrado , respostas não são mais permitidas