Tuesday, June 12, 2012

Cara Membuat Form Transparan Menggunakan VB6

Kode di bawah digunakan untuk menjadikan sebuah form menjadi transparan, tetapi dengan kontrol-kontrol (CommandButton, TextBox, ComboBox, dll) yang tidak transparan (opaque).

Bagaimanakah kode untuk membuat form transparant ini:
Option Explicit 

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

Public Function
MakeTransparentForm(frm As Form)
frm.BackColor = vbBlue
SetWindowLong frm.hwnd, GWL_EXSTYLE, GetWindowLong(frm.hwnd, GWL_EXSTYLE) Or WS_EX_LAYERED
SetLayeredWindowAttributes frm.hwnd, vbBlue, 0&, LWA_COLORKEY
End Function

Contoh penggunaan kode form transparant:
Private Sub Form_Load() 
MakeTransparentForm Me
End Sub

Demikianlah semoga kode membuat form menjadi transparant di atas bermanfaat. selamat mencoba!