Skip to content Skip to sidebar Skip to footer

Membuat Skin Form Transparan

Membuat Skin Form Transparan

Lebih mendalam mengenai Form Transparan yang pernah dibahas di postingan lalu, kali ini kita akan membuat Skin Form dengan menggunakan Form_Transparan.BAS. Form_Transparan.BAS adalah sebuah module yang dapat digunakan dengan tujuan sbb:

  • Membuat Form Transparan
  • Membuat Skin Form sesuai yang kita inginkan
  • Form agar bisa di drag dengan mouse

Tutorial berikut ini akan membahas ketiga hal diatas, yang jelas anda harus sudah memiliki terlebih dahulu Form_Transparan.BAS tersebut. Silahkan akses disini untuk mempelajari dasar-dasar penggunaanya, atau silahkan copy dibawah ini dan simpan dalam ekstensi .BAS. Tanpa Form_Transparan.BAS ini, maka project kita tidak akan berhasil.

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 bDefaut As Byte, ByVal dwFlags As Long) As Long

Private Const GWL_EXSTYLE       As Long = (-20)
Private Const LWA_COLORKEY      As Long = &H1
Private Const LWA_Defaut         As Long = &H2
Private Const WS_EX_LAYERED     As Long = &H80000
Dim VoirStyle As String

Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Public Declare Sub ReleaseCapture Lib "user32" ()
Public Const WM_NCLBUTTONDOWN = &HA1
Public Const HTCAPTION = 2


Public Function Transparency(ByVal hwnd As Long, Optional ByVal Col As Long = vbBlack, Optional ByVal PcTransp As Byte = 255, Optional ByVal TrMode As Boolean = True) As Boolean
' Return : True if there is no error.
' hWnd   : hWnd of the window to make transparent
' Col : Color to make transparent if TrMode=False
' PcTransp  : 0 à 255 >> 0 = transparent  -:- 255 = Opaque
Dim DisplayStyle As Long
    On Error GoTo errOK
    VoirStyle = GetWindowLong(hwnd, GWL_EXSTYLE)
    If DisplayStyle <> (DisplayStyle Or WS_EX_LAYERED) Then
        DisplayStyle = (DisplayStyle Or WS_EX_LAYERED)
        Call SetWindowLong(hwnd, GWL_EXSTYLE, DisplayStyle)
    End If
    Transparency = (SetLayeredWindowAttributes(hwnd, Col, PcTransp, IIf(TrMode, LWA_COLORKEY Or LWA_Defaut, LWA_COLORKEY)) <> 0)
    
errOK:
    If Not Err.Number = 0 Then Err.Clear
End Function

Public Sub ActiveTransparency(M As Form, d As Boolean, F As Boolean, T_Transparency As Integer, Optional Color As Long)
Dim B As Boolean
        If d And F Then
        'Makes color (here the background color of the shape) transparent
        'upon value of T_Transparency
            B = Transparency(M.hwnd, Color, T_Transparency, False)
        ElseIf d Then
            'Makes form, including all components, transparent
            'upon value of T_Transparency
            B = Transparency(M.hwnd, 0, T_Transparency, True)
        Else
            'Restores the form opaque.
            B = Transparency(M.hwnd, , 255, True)
        End If
End Sub


Hal penting dan pertama yang harus dilakukan adalah:

Setting Form anda dengan pengaturan propertiesnya sbb:
    1.  BorderStyle diatur ke: NONE
    2.  ClipControls & ControlBox atur ke: FALSE semua,
    3.  Aktifkan MinButton ke: TRUE
    4.  Non-aktifkan MaxButton ke: FALSE
    5. Aktifkan ShowInTaskBar ke: TRUE
    6. Atur BackColor ke warna Hitam atau &H00000000&

      Note: Kesemua pengaturan diatas, bisa dilihat dan diatur melalui Properties Form anda.

Buatlah sebuah image/gambar mentah. Image ini dapat berupa kotak, bulat, lonjong, persegi-enam atau sebuah photo anda. Yang jelas, garis border form anda tidak akan kelihatan dan yang nampak hanya image tersebut.

Perhatikan tahapan berikut ini:

1. Bila terdapat area kosong pada image tersebut maka poles dengan warna hitam, karena warna ini akan transparan nantinya pas project di compile.
2. Bahwa Latarbelakang warna default wajib: HITAM, jadi aturlah ke HITAM
3. Gunakan MS.Paint untuk hasil efektif (walaupun kurang kinclong karena fitur MS.Paint tidak mendukung seperti pada Adobe Photoshop dan CorelDraw.

Contoh Image yang sudah siap digunakan:

Form-Transparan-Visual Basic 6.0

Simpanlah image tersebut dalam bentuk BMP, oleh karena, Visual Basic 6.0 gak support dengan PNG dan bila disimpan ke JPG akan menghasilkan warna background hitam yang tidak bagus alias pecah. Jadi, simpan saja ke BMP untuk hasil bagus dan ringan pada saat di load.

Selanjutnya lakukan tahapan ini:

1. Browse & Input file image tadi melalui Form Properties, yakni pada property [Picture].
2. Membuat Form Transparan, Caranya: letakkan blok kode berikut ini pada Form_Load:

Private Sub Form_Load()
ActiveTransparency, me, true, false, 210
End Sub

2. Membuat agar Form dapat di-Drag, Caranya: letakkan blok kode

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim lngReturnValue As Long
If Button = 1 Then
         Call ReleaseCapture
        lngReturnValue = SendMessage(Me.hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&)
    End If
End Sub

Contoh tampilan akhir seperti ini:


Form-Transparan-Visual Basic 6.0

Catatan: Pada saat launching, warna hitam tersebut menjadi transparan, jadi yang nampak ya selain warna hitam, jadi khusus tulisan apapun, buatlah agar selain warna hitam karena akan otomatis berubah transparan.
Selamat mencoba!


Post a Comment for "Membuat Skin Form Transparan"