Restored from previous forum. Originally posted by fred.
Just a little code to show you how use non supported gadget in PureBasic.
Code: Select all
#WindowWidth = 400
#WindowHeight = 345
If OpenWindow(0, 100, 120, 400, 345, "PureBasic - Gadget Demonstration", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget)
*TrackBar = CreateWindowEx_(0, "msctls_trackbar32", "", #WS_CHILD | #WS_VISIBLE | #WS_GROUP | #TBS_AUTOTICKS, 20, 100, 150, 20, WindowID(0), 0, GetModuleHandle_(0), 0)
SendMessage_(*TrackBar, #TBM_SETRANGEMIN, 0, 0)
SendMessage_(*TrackBar, #TBM_SETRANGEMAX, 0, 100)
si.SCROLLINFO\cbSize = SizeOf(SCROLLINFO)
si\fMask = #SIF_ALL
si\nMin = 0
si\nMax = 2000
si\nPage = 500
si\nPos = 50
si\nTrackPos = 0
*ScrollBar = CreateWindowEx_(0, "SCROLLBAR", "", #WS_CHILD | #WS_VISIBLE | #SBS_HORZ, 20, 150, 150, 20, WindowID(0), 157, GetModuleHandle_(0), 0)
SendMessage_(*ScrollBar , #SBM_SETSCROLLINFO, 1, si)
TextGadget (9, 10, #WindowHeight-50, 250, 24, "PureBasic - Gadget demonstration")
ButtonGadget(8, #WindowWidth-100, #WindowHeight-56, 80, 24, "Quit")
Declare Callback(WindowID, Message, wParam, lParam)
SetWindowCallback(@Callback())
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_Gadget
Select EventGadget()
Case 8 ; Quit...
EventID = #PB_Event_CloseWindow
EndSelect
EndIf
Until EventID = #PB_Event_CloseWindow
EndIf
Procedure Callback(WindowID, Message, wParam, lParam)
Shared *TrackBar, *ScrollBar, si
If Message = #WM_HSCROLL
If wParam & $FFFF = #TB_ENDTRACK
SetGadgetText(9, "Dropped: "+Str(SendMessage_(*TrackBar, #TBM_GETPOS, 0, 0)))
EndIf
If wParam & $FFFF = #SB_THUMBTRACK
SetScrollPos_(*ScrollBar, #SB_CTL, wParam >> 16, 1)
SetGadgetText(9, "Dropped: "+Str(SendMessage_(*TrackBar, #TBM_GETPOS, 0, 0)))
EndIf
EndIf
ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure
End