ES_NUMBER = 8192
INSTALL @lib$+"WINLIB2"
dlg% = FN_newdialog("test1",100,100,100,100,8,200)
PROC_editbox(dlg%,"50",101,10,10,50,10,ES_NUMBER)
PROC_dlgctrl(dlg%,"",102,0,0,0,0,&50000096,"msctls_updown32")
PROC_showdialog(dlg%)
UDM_SETRANGE = 1125
SYS "SendDlgItemMessage", !dlg%, 102, UDM_SETRANGE, 0, (0 << 16) + 100
SYS "SetDlgItemText", !dlg%, 101, "40"
ON ERROR PROC_closedialog(dlg%):PRINT REPORT$:END
ON CLOSE PROC_closedialog(dlg%):QUIT
ON SYS PROCDoSys(@wparam%,@lparam%)
REPEAT
WAIT 1
UNTIL FALSE
PROC_closedialog(dlg%)
END
:
DEFPROCDoSys(w%,l%)
LOCAL n%,t%
CASE (w% AND &FF) OF
WHEN 101:
n%=VAL(FNgetdlgtext(dlg%, 101))
t%=n% MOD 5
IF t%<>0 THEN
IF t%<3 THEN n%+=5-t% ELSE n%-=t%
SYS "SetDlgItemText", !dlg%, 101, STR$(n%)
ENDIF
ENDCASE
ENDPROC
:
DEF FNgetdlgtext(dlg%, id%)
LOCAL text%
DIM text% LOCAL 255
SYS "GetDlgItemText", !dlg%, id%, text%, 255
= $$text%