Kamis, 25 November 2010

Membuat Form Transparan dengan Visual Basic

Form yang transaparan dengan background / gambar dibelakangnya terlihat seperti gambar disamping ini, untuk membuat form transaparan dapat dibuat dalam pemograman Visual Basic yang dapat menambah nilai art / seni pada aplikasi yang telah dibuat.

Untuk pembuatannya membutuhkan sebuah modul yang akan dipanggil / di execute pada form yang akan digunakan, berikut langkah-langkahnya :

1. Siapkan modul dan isi dengan source code dibawah ini :

Option Explicit
Public Const LWA_COLORKEY = 1
Public Const LWA_ALPHA = 2
Public Const LWA_BOTH = 3
Public Const WS_EX_LAYERED = &H80000
Public Const GWL_EXSTYLE = -20
Public Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal color As Long, ByVal x As Byte, ByVal alpha As Long) As Boolean
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 GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long

Sub SetTranslucent(ThehWnd As Long, color As Long, nTrans As Integer, flag As Byte)
On Error GoTo ErrorRtn

Dim attrib As Long
attrib = GetWindowLong(ThehWnd, GWL_EXSTYLE)
SetWindowLong ThehWnd, GWL_EXSTYLE, attrib Or WS_EX_LAYERED
SetLayeredWindowAttributes ThehWnd, color, nTrans, flag
Exit Sub
ErrorRtn:
MsgBox Err.Description & " Source : " & Err.Source
End Sub

 
2 Siapkan komponen yang akan digunakan pada form :

Nama Kontrol    Properti         Nilai                   
Form1                Caption         Form Transparan
                           Name           Form1
Image1                Picture          Pilih Lokasi Gambar
                                                                              
NB: untuk penamaan atribut dapat diganti sesuai keinginan.

3. Masukan Source Code dibawah ini pada form yang telah dibuat :

Option Explicit
Dim MoveScreen As Boolean, color As Long, flag As Byte
Dim MousX, MousY, CurrX, CurrY As Integer
Private Sub Command1_Click()
End
End Sub

Private Sub Form_Activate()
On Error GoTo ErrorRtn
color = RGB(0, 0, 255): flag = 0
flag = flag Or LWA_COLORKEY: Form1.Show
SetTranslucent Form1.hwnd, color, 0, flag
Exit Sub
ErrorRtn: MsgBox Err.Description & " Source : " & Err.Source
End Sub

Private Sub image1_MouseDown(Button As Integer, Shift As Integer, x As Single, Y As Single)
MoveScreen = True: MousX = x: MousY = Y
End Sub

Private Sub image1_MouseMove(Button As Integer, Shift As Integer, x As Single, Y As Single)
If MoveScreen Then
CurrX = Me.Left - MousX + x: CurrY = Me.Top - MousY + Y
Me.Move CurrX, CurrY
End If
End Sub

Private Sub image1_MouseUp(Button As Integer, Shift As Integer, x As Single, Y As Single)
MoveScreen = False
End Sub


4. Setelah itu coba Run, jika masih ada yang debug coba sesuaikan nama atribut yang ada pada form. Sekian, smoga bermanfaat...


UPDATE : Untuk format gambar yang support hanya berformat GIF

Artikel yang berkaitan



31 komentar:

  1. salam sahabat
    wah bagus juga jadi pingin setting btw suka menchester yach hehehe mkasih yach

    BalasHapus
  2. Wah keren sob, izin sedot infonya thanks yach tambah varisai di kompi

    BalasHapus
  3. nice info sob, pengen bngt bljr visul basic, tp ak blm punya dasarnya sob, gmana ya tahapan bljrnya??

    BalasHapus
  4. manthap gan,.saya tunggu artikel terbarunya

    BalasHapus
  5. .. hhhee .. ane kurang tahu sob..
    pi sip sip artikelnya..
    go MU go !!!

    BalasHapus
  6. kok susah amat yah??????

    ada yang lebih gampang ga caranya???

    BalasHapus
  7. Info yg sangat berguna.thank"s atas semua info.....mohon pembelajaran....

    BalasHapus
  8. kok ada debugnya? gimana nih?

    BalasHapus
  9. Berdasarkan percobaan saya program ini valid, mungkin dalam penamaan atribut ada yang tidak sama, seperti yang saya katakan di atas jika ada debug sesuaikan nama atribut pada form.

    BalasHapus
  10. it's wont work..,
    maybe you should add more detailed information about properties, components, or object that you used.

    BalasHapus
  11. Trimakasih atas artikelnya , dan Jangan lupa baclink saya atau kunjunggi bolg saya di : www.rougerdeluffy.blogspot.com

    BalasHapus
  12. Thank You BGT gan....,,Ini yg lgy gw cari2,,,,

    salam dr

    www.redho-crow.blogspot.com

    BalasHapus
  13. @redho : sama-sama gan, ditunggu kunjungan selanjutya...
    Salam.

    BalasHapus
  14. format gambarnya apa itu gan? tolong lebih spesifik lagi, soalnya kalo di masukin bitmap, hasilnya akan sama aja ada background warna putihnya

    BalasHapus
  15. Format gambarnya yang lebih kompitabel extension JPEG sob, maaf sob kekurangannya.
    Terimkasih sob kunjungannya, kalau ada kurang jelas lagi silahkan di tanya sob..

    BalasHapus
    Balasan
    1. nah lo kalo JPEG gimana bisa transparant tu background??

      Hapus
    2. Untuk format JPEG tidak bisa sob, hanya mendukung gambar berformat .gif.

      Hapus
    3. Format Gif Juga Ga' Bisa Gan...!!!
      Udah Gue Coba -_-

      Hapus
    4. Coba cari gambar gif yang lain sob, untuk contoh diatas berhasil dengan gambar berformat gif.

      Hapus
  16. Balasan
    1. Saya belum melakukan percobaan pada vb 2010, kalau menurut pendapat saya mungkin saja bisa tapi harus ada modifikasi coding.

      Hapus
  17. kok biasa ajj yah hasil runningannya????

    kaya membuat form bergambar biasa brooo, cm bedanya nih d berat"in ama coding...


    emang hasil yang mas broo bwt gmn???
    screenshotnya gkk ad sih,jd gkk bs bedain???

    BalasHapus
    Balasan
    1. hasil screenshot nya seperti diatas sob.
      disini ane bahas cara membuat gambar biasa menjadi gambar transparan.
      coba saya mau lihat hasil sob gmna, bisa kirimkan link gambar hasil punya sob?

      Hapus
  18. assalamualaikum wr.wb

    mantap nih , ,

    BalasHapus
  19. ada coding buat nampilkan cuman gambar doang kaga gan ,tanpa border ?
    kalo di screenshot nya yang abang kasih beda sekali dengan yang di kasih oleh abang ?

    BalasHapus
  20. di bagian
    me.move CurrX, CurrY
    dan bagian
    SetTranslucent Form1.hwnd, color, 0, flag
    nya error gan...
    error di MOVE dan di HWND...
    itu maksudnya buat apa sih?

    BalasHapus
  21. Bang... Bisa minta tolong g. biar punya abng di bagikan aja langsung... soanya saya barusan test... Hasilnya sama dengan komeng di atas...

    Kalau bisa projek vb nya abng tolong dubagikan ya bang...

    BalasHapus

Silahkan tulis komentar jika ada yang ingin ditanyakan dari artikel ini, komentar kalian sangat berarti bagi saya.

Format untuk komentar:
1) Pilih profil sebagai Name/URL
2) Isikan nama anda
3) Isikan URL (Blog/Website/Facebook/Twitter/Email/Kosongkan)
4) Isikan Komentar
5) Postkan Komentar anda.

Maaf untuk komentar ANONIM tidak akan saya RESPON.