Code: Select all
Procedure RealTimeScrollEvent(GadgetID,Pos)
; Your stuff here, for each Scrollbar
Select GadgetID
Case GadgetID(1) ; Scrollbar 1
SetGadgetText(2,Str(Pos))
Case GadgetID(3) ; Scrollbar 2
SetGadgetText(4,Str(Pos))
EndSelect
EndProcedure
Procedure ScrollCallback(hwnd,msg,wParam,lParam)
; dont change this procedure
Shared DK_OldScrollCallback
If ((msg = #WM_HSCROLL) Or (msg = #WM_VSCROLL)) And (wParam & $FFFF) = #SB_THUMBTRACK
RealTimeScrollEvent(lParam,(wParam >> 16) & $FFFF)
EndIf
If DK_OldScrollCallback
ProcedureReturn CallWindowProc_(DK_OldScrollCallback,hwnd,msg,wParam,lParam)
Else
ProcedureReturn 0
EndIf
EndProcedure
OpenWindow(0,200,200,200,200,"ScrollIt!",#PB_Window_SystemMenu)
CreateGadgetList(WindowID(0))
ScrollBarGadget(1,20,20,15,160,1,1000,100,#PB_ScrollBar_Vertical)
TextGadget(2,0,0,100,20,"1")
ScrollBarGadget(3,40,20,100,15,1,8000,1)
TextGadget(4,100,0,100,20,"1")
DK_OldScrollCallback = SetWindowLong_(WindowID(0),#GWL_WNDPROC,@ScrollCallback())
Repeat:Until WaitWindowEvent()=#PB_Event_CloseWindow