Adding an up-down control to the main window
by Richard Russell, May 2006
The BB4W help documentation describes how to add an up-down control to a dialogue box here but doesn't tell you how to add one to the main output window.
The code below illustrates the creation of an up-down control which is 'attached' to an edit box, which is the usual way in which one is used. First install the necessary library:
INSTALL @lib$+"WINLIB5"
Next create the edit box to which the up-down control will be attached:
WS_BORDER = &800000 ES_NUMBER = &2000 hedit% = FN_editbox("", 50, 50, 80, 20, 0, WS_BORDER + ES_NUMBER)
Here the edit box is positioned at 50,50 and has a size of 80×20 pixels. The style value specifies that the box has a border and that it is a numeric-entry box.
Now we can create the up-down control itself:
UDS_SETBUDDYINT = 2 UDS_ALIGNRIGHT = 4 hupdown% = FN_createwindow("msctls_updown32", "", 0, 0, 0, 0, 0, \ \ UDS_ALIGNRIGHT + UDS_SETBUDDYINT, 0)
The style value specifies that the up-down control is right-aligned in the edit box and that the edit box value is automatically modified by the up-down control.
We must tell the up-down control to which edit box it is attached, over what range of values it operates, and what the initial value is:
UDM_SETBUDDY = &469 UDM_SETRANGE = &465 UDM_SETPOS = &467 SYS "SendMessage", hupdown%, UDM_SETBUDDY, hedit%, 0 SYS "SendMessage", hupdown%, UDM_SETRANGE, 0, 50 SYS "SendMessage", hupdown%, UDM_SETPOS, 0, 20
Now we can access the contents of the edit box in the usual way, as documented here.
Don't forget to delete both the edit box and the up-down control when you are finished:
PROC_closewindow(hupdown%) PROC_closewindow(hedit%)