You can try with something like that:
Code: Select all
EnableExplicit
Enumeration Window
#Window_0
EndEnumeration
Enumeration Gadgets
#Spin_1
EndEnumeration
Procedure Open_Window_0(X = 0, Y = 0, Width = 280, Height = 200)
If OpenWindow(#Window_0, X, Y, Width, Height, "Title", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
SpinGadget(#Spin_1, 10, 20, 250, 24, -1000, 1000, #PB_Spin_Numeric)
SetGadgetState(#Spin_1, 66)
EndIf
EndProcedure
Open_Window_0()
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
Case #WM_CHAR
If GetActiveGadget() = #Spin_1
If EventwParam() = 45
If FindString(GetGadgetText(#Spin_1), "-", 2)
SetGadgetState(#Spin_1, GetGadgetState(#Spin_1))
;SendMessage_(GadgetID(#Spin_1), #EM_SETSEL, Len(GetGadgetText(#Spin_1)), Len(GetGadgetText(#Spin_1)))
EndIf
ElseIf EventwParam() < 48 Or EventwParam() > 58
SetGadgetState(#Spin_1, GetGadgetState(#Spin_1))
;SendMessage_(GadgetID(#Spin_1), #EM_SETSEL, Len(GetGadgetText(#Spin_1)), Len(GetGadgetText(#Spin_1)))
EndIf
EndIf
Case #PB_Event_Gadget
Select EventGadget()
Case #Spin_1
SetGadgetState(#Spin_1, GetGadgetState(#Spin_1))
EndSelect
EndSelect
ForEver