Langsung ke konten utama

Cara Menggulung ScrollBar dengan Mouse Wheel pada VB

kebetulan lagi jalan-jalan di google, gw nemuin ilmu muantebb nih. waktu itu gw baca dari
http://www.visualbasicindonesia.com .. gw belajar banyak dari link keren itu. So sebagai ajang belajar bareng nih yang bisa gw share.


Pertama-tama, bikin sebuah project baru, masukkan sebuah PictureBox ke dalam Form1, namai dengan picContainer. Gambar sebuah VScrollBar pada picContainer, namai VScrollBar dengan nama Scroll. Gambarkan juga sebuah sebuah PictureBox di dalam picContainer, namai dengan picItem, ubah properti Index menjadi 0. Gambarkan sebuah Label di dalam picItem. Salin (copy-paste) picItem sebanyak empat kali di dalam picContainer.


 
  
Tambahkan sebuah module ke dalam project Anda, namai dengan basScrollBar, ketik kode di bawah ini ke dalam module tersebut.
Option Explicit

Public Declare Function SendMessage Lib _
"user32" Alias "SendMessageA" (ByVal hWnd As Long, _
ByVal wMsg As Long, ByVal wParam As Long, _
ByVal lParam 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

Public Declare Function CallWindowProc Lib _
"user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, _
ByVal hWnd As Long, ByVal Msg As Long, _
ByVal wParam As Long, ByVal lParam As Long) As Long

Public Const SB_LINEUP As Long = 0
Public Const SB_LINEDOWN As Long = 1

Public Const WM_VSCROLL As Long = &H115
Public Const WM_HSCROLL As Long = &H114
Public Const WM_MOUSEWHEEL As Long = &H20A
Public Const GWL_WNDPROC = (-4)

Public PrevProc As Long
Public blnFocusScroll As Boolean

Function NewWindowProc(ByVal hWnd As Long, _
ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
On Error Resume Next
    Select Case Msg
        Case Is = WM_MOUSEWHEEL
            If blnFocusScroll = True Then
                If (wParam > 0) Then
                    'Form1 adalah nama form yang akan akan digunakan
                    'Scroll adalah nama scrollbar yang akan digunakan
                    SendMessage Form1.Scroll.hWnd, WM_VSCROLL, SB_LINEUP, 0&
                    Form1.Scroll.Value = Form1.Scroll.Value - _
                    Form1.Scroll.LargeChange
                Else
                    SendMessage Form1.Scroll.hWnd, WM_VSCROLL, SB_LINEDOWN, 0&
                    Form1.Scroll.Value = Form1.Scroll.Value + _
                    Form1.Scroll.LargeChange
                End If
                Form1.Scroll_Change
            End If
        End Select
        '
        NewWindowProc = CallWindowProc(PrevProc, hWnd, Msg, wParam, lParam)
End Function

Public Sub HookForm(F As Form)
    PrevProc = SetWindowLong(F.hWnd, GWL_WNDPROC, AddressOf NewWindowProc)
End Sub

Public Sub UnHookForm(F As Form)
    SetWindowLong F.hWnd, GWL_WNDPROC, PrevProc
End Sub
Ketikkan kode di bawah ini pada Form1:
Option Explicit

Dim AwalTop As Long

Sub Scrolling(Value As Long)
    Dim i As Long

    picItem(0).Top = picItem(0).Top + AwalTop - (Value)

    For i = 1 To picItem.Count - 1
        picItem(i).Top = picItem(i - 1).Top + Me.picItem(0).Height + 20
        DoEvents
    Next

    AwalTop = Value
End Sub

Private Sub Form_Load()
    HookForm Me
    blnFocusScroll = True
    Me.Scroll.Max = 2500
    Me.Scroll.SmallChange = 10
    Me.Scroll.LargeChange = 100
End Sub

Private Sub Form_Unload(Cancel As Integer)
    UnHookForm Me
End Sub

Sub Scroll_Change()
    Scrolling Me.Scroll.Value
End Sub

Sub Scroll_Scroll()
    Scrolling Me.Scroll.Value
End Sub
Jalankan program, cobalah menggulung dengan mouse wheel.

Bagaimana?? semoga bermanfaat ya buat para blogger dan buat anda yang lagi baca.. hehehe 
thx beraaat udah mau mampir..hehehe

Komentar

Postingan populer dari blog ini

Metode Penentuan Lokasi

halo kawan - kawin .. maksudnya kawan-kawan.. udah lama gak posting.. karena modem gw agak terganggu jiwanya..lagian gak enak aja kalo ngepost pake modem orang, gak reseppp dah..hehe. maap beribu maap ya.. oke langsung aja, kemarin-kemarin gw gak sengaja nemu artikel tentang cara nentuin lokasi pake beberapa metode trus sekalian aja gw baca dan niatnya pengen gw share disini.. 1. Location Factor Rating (Methode) Location Factor Rating Adalah sebuah metode penentuan lokasi yang mementingkan adanya obyektifitas dalam proses mengenali biaya yang sulit untuk dievaluasi. Faktor yang dipertimbangkan factor baik yang kualitatif maupun kuantitatif dianalisis dengan cara mengkuantifisir semua factor. langkah-langkah yang perlu dilakukan dalam Location Factor Rating : 1. Membuat daftar factor yang berhubungan yang sering disebut factor kunci sukses      (critical success factors – CSFs) 2. Buat pembobotan untuk setiap factor yang te...

penyelesaian fungsi search pada aplikasi kosan (kelompok 5)

akhirnya jumat, 25 maret 2011 jam 11an sebelum jumatan..hehe saya berhasil menemukan cara agar fungsi search by 5 criteria yang kemarin - kemarin membuat saya uring - uringan Lebay. Pada awalnya saya bingung mau diapain sih nih fungsi kok kaga bisa jalan.. tetapai jen jeng jeeeenng..!!! terkabul doa saya selama 9 bulan lebih beberapa minggu di dalam kandungan ibu saya..hehe. Tapi menurut saya script code-nya masih belum begitu efektif dan sepertinya masih ada yang belum berjalan dengan lancar walaupun satu atau dua.  Jadi begini, saya jelaskan dulu apa yang sudah saya bilang search by 5 criteria tadi. maklum karna saya masih cupu masalah beginian jadi cuma dihadepin masalah if bersarang di sarangnya if aja bingung. hehehe karena aplikasi kami ini bergerak di bidang pencarian kosan dengan batasan hanya wilayah kawasan pendidikan telkom saja jadi kami hanya mengambil 3 daerah tersering diingat orang yaitu Sukapura, PGA, dan Sukabirus. jadi 5 kriteria tadi adalah pec...
WHO AM I IN THE PAST Bagian Pertama Masa SMA adalah semua kejadian unik yang paling gak bisa dilupain ketika lw gak lagi duduk di bangku kelas pake seragam atas putih-bawah abu. Apapun kasta lw sewaktu di SMA dulu, mau lw itu termasuk kasta asisten jongos kelas 3 kek, atau lw yang jadi atasan dari jongos2 yang memiliki banyak bawahan buat minta-in uang palak-an di tempat parkir n gerbang depan, emhft.. atau lw adalah seorang yang Cuma berangkat ke sekolah,duduk dan konsen belajar terus dapet nilai ulangan di atas rata2. Yang pasti itu yang bikin sekarang gw merengung sambil senyam-senyum sendirian di kamar gw yang sepi. Nama gw, ezza. Cowo kacamata minus, kurang tinggi, n belum gaul. Semua adalah nama samaran biar cerita kenangan yang begini gak mengacau kedepannya. Lanjut.. Gw gak ngerti kenapa gw jadi pengen nulis cerita kenangan dulu gw waktu di SMA. Padahal sebenernya ga pernah ad terlintas di otak gw yang saat ini gw isi ama hal yang berbau a...