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
Posting Komentar