|
REM. Program to demonstrate a Dialogue Box INSTALL @lib$+"WINLIB2" BS_DEFPUSHBUTTON = &1 CB_ADDSTRING = &143 CB_SETCURSEL = &14E CBS_DROPDOWNLIST = &3 ES_AUTOHSCROLL = &80 ES_NUMBER = &2000 LB_ADDSTRING = &180 LB_GETCURSEL = &188 UDM_SETRANGE = &465 UDS_ALIGNRIGHT = &4 UDS_AUTOBUDDY = &10 UDS_SETBUDDYINT = &2 WS_CHILD = &40000000 WS_GROUP = &20000 WS_VISIBLE = &10000000 WM_COMMAND = 273 editboxTextBox% = 900 editboxNumber% = 901 dlgctrlNumberBox% = 902 comboboxDropDown% = 903 listboxList% = 904 radiobuttonButton1% = 905 radiobuttonButton2% = 906 checkboxCheckbox1% = 907 checkboxCheckbox2% = 908 pushbuttonOK% = 1 pushbuttonCancel% = 2 dlg%=FN_newdialog("Dialogue box", 20, 20, 160, 128, 8, 1024) PROC_groupbox(dlg%, "Group box", 0, 4, 4, 152, 96, WS_GROUP) PROC_editbox(dlg%, "Text box", editboxTextBox%, 12, 20, 64, 12, ES_AUTOHSCROLL) PROC_editbox(dlg%, "123456", editboxNumber%, 82, 20, 64, 12, ES_NUMBER) PROC_dlgctrl(dlg%, "", dlgctrlNumberBox%, 0, 0, 12, 12, WS_VISIBLE OR WS_CHILD OR \ \ UDS_AUTOBUDDY OR UDS_ALIGNRIGHT OR UDS_SETBUDDYINT, "msctls_updown32") PROC_combobox(dlg%, "", comboboxDropDown%, 12, 40, 64, 60, CBS_DROPDOWNLIST) PROC_listbox(dlg%, "", listboxList%, 82, 40, 64, 48, 0) PROC_radiobutton(dlg%, "Radiobutton 1", radiobuttonButton1%, 12, 64, 64, 10, 0) PROC_radiobutton(dlg%, "Radiobutton 2", radiobuttonButton2%, 12, 82, 64, 10, 0) PROC_checkbox(dlg%, "Checkbox1", checkboxCheckbox1%, 82, 82, 64, 10, 0) PROC_checkbox(dlg%, "Checkbox2", checkboxCheckbox2%, 82, 10, 64, 10, 0) PROC_pushbutton(dlg%, "OK", pushbuttonOK%, 12, 108, 56, 14, WS_GROUP OR BS_DEFPUSHBUTTON) PROC_pushbutton(dlg%, "Cancel", pushbuttonCancel%, 92, 108, 56, 14, 0) PROC_showdialog(dlg%) ON CLOSE PROC_closedialog(dlg%):QUIT ON ERROR PROC_closedialog(dlg%):PRINT'REPORT$:END SYS "SendDlgItemMessage", !dlg%, comboboxDropDown%, CB_ADDSTRING, 0, "Combobox 1" SYS "SendDlgItemMessage", !dlg%, comboboxDropDown%, CB_ADDSTRING, 0, "Combobox 2" SYS "SendDlgItemMessage", !dlg%, comboboxDropDown%, CB_ADDSTRING, 0, "Combobox 3" SYS "SendDlgItemMessage", !dlg%, comboboxDropDown%, CB_ADDSTRING, 0, "Combobox 4" SYS "SendDlgItemMessage", !dlg%, comboboxDropDown%, CB_ADDSTRING, 0, "Combobox 5" SYS "SendDlgItemMessage", !dlg%, comboboxDropDown%, CB_ADDSTRING, 0, "Combobox 6" SYS "SendDlgItemMessage", !dlg%, comboboxDropDown%, CB_ADDSTRING, 0, "Combobox 7" SYS "SendDlgItemMessage", !dlg%, comboboxDropDown%, CB_ADDSTRING, 0, "Combobox 8" SYS "SendDlgItemMessage", !dlg%, comboboxDropDown%, CB_SETCURSEL, 3, 0 SYS "SendDlgItemMessage", !dlg%, listboxList%, LB_ADDSTRING, 0, "Listbox item 0" SYS "SendDlgItemMessage", !dlg%, listboxList%, LB_ADDSTRING, 0, "Listbox item 1" SYS "SendDlgItemMessage", !dlg%, listboxList%, LB_ADDSTRING, 0, "Listbox item 2" SYS "SendDlgItemMessage", !dlg%, listboxList%, LB_ADDSTRING, 0, "Listbox item 3" SYS "CheckRadioButton", !dlg%, radiobuttonButton1%, radiobuttonButton2%, radiobuttonButton2% SYS "SendDlgItemMessage", !dlg%, dlgctrlNumberBox%, UDM_SETRANGE, 0, 15 REM --------------------- START OF THE INTERESTING BIT -------------- INSTALL @lib$+"EVENTLIB" PROC_eventinit PROC_eventregister(WM_COMMAND, PROCgetControlID()) REPEAT PROC_eventpoll WAIT 100 UNTIL FALSE END DEF PROCgetControlID(M%, W%, L%) ControlNo% = W% AND &FFFF CASE TRUE OF WHEN (ControlNo% > 899) AND (ControlNo% < 909) : ControlID$ = STR$(ControlNo%) OTHERWISE ControlID$ = "Unknown " + STR$(ControlNo%) ENDCASE SYS "MessageBox", @hwnd%, "M%= " + STR$(M%) + " Control ID= " + ControlID$, "",0 ENDPROC
|
REM. Program to demonstrate a Dialogue Box INSTALL @lib$+"WINLIB2" REM!WC BN_CLICKED = 0 BS_DEFPUSHBUTTON = 1 CB_ADDSTRING = 323 CB_SETCURSEL = 334 CBN_CLOSEUP = 8 CBN_DROPDOWN = 7 CBN_KILLFOCUS = 4 CBN_SELCHANGE = 1 CBN_SELENDCANCEL = &A CBN_SELENDOK = 9 CBN_SETFOCUS = 3 CBS_DROPDOWNLIST = 3 EN_CHANGE = 768 EN_KILLFOCUS = 512 EN_SETFOCUS = 256 EN_UPDATE = &400 ES_AUTOHSCROLL = &80 ES_NUMBER = 8192 LB_ADDSTRING = 384 LBN_KILLFOCUS = 5 LBN_SELCHANGE = 1 LBN_SETFOCUS = 4 UDM_SETRANGE = &465 UDN_DELTAPOS = -722 UDS_ALIGNRIGHT = 4 UDS_AUTOBUDDY = 16 UDS_SETBUDDYINT = 2 WM_COMMAND = 273 WS_CHILD = &40000000 WS_GROUP = &20000 WS_VISIBLE = &10000000 editboxTextBox% = 900 editboxNumber% = 901 dlgctrlNumberBox% = 902 comboboxDropDown% = 903 listboxList% = 904 radiobuttonButton1% = 905 radiobuttonButton2% = 906 checkboxCheckbox1% = 907 checkboxCheckbox2% = 908 pushbuttonOK% = 1 pushbuttonCancel% = 2 dlg%=FN_newdialog("Dialogue box", 360, 20, 160, 128, 8, 1024) PROC_groupbox(dlg%, "Group box", 0, 4, 4, 152, 96, WS_GROUP) PROC_editbox(dlg%, "Text box", editboxTextBox%, 12, 20, 64, 12, ES_AUTOHSCROLL) PROC_editbox(dlg%, "123456", editboxNumber%, 82, 20, 64, 12, ES_NUMBER) PROC_dlgctrl(dlg%, "", dlgctrlNumberBox%, 0, 0, 12, 12, WS_VISIBLE OR WS_CHILD OR \ \ UDS_AUTOBUDDY OR UDS_ALIGNRIGHT OR UDS_SETBUDDYINT, "msctls_updown32") PROC_combobox(dlg%, "", comboboxDropDown%, 12, 40, 64, 60, CBS_DROPDOWNLIST) PROC_listbox(dlg%, "", listboxList%, 82, 40, 64, 48, 0) PROC_radiobutton(dlg%, "Radiobutton 1", radiobuttonButton1%, 12, 64, 64, 10, 0) PROC_radiobutton(dlg%, "Radiobutton 2", radiobuttonButton2%, 12, 82, 64, 10, 0) PROC_checkbox(dlg%, "Checkbox1", checkboxCheckbox1%, 82, 82, 64, 10, 0) PROC_checkbox(dlg%, "Checkbox2", checkboxCheckbox2%, 82, 10, 64, 10, 0) PROC_pushbutton(dlg%, "OK", pushbuttonOK%, 12, 108, 56, 14, WS_GROUP OR BS_DEFPUSHBUTTON) PROC_pushbutton(dlg%, "Cancel", pushbuttonCancel%, 92, 108, 56, 14, 0) PROC_showdialog(dlg%) ON CLOSE PROC_closedialog(dlg%):QUIT ON ERROR PROC_closedialog(dlg%):PRINT'REPORT$:END SYS "SendDlgItemMessage", !dlg%, comboboxDropDown%, CB_ADDSTRING, 0, "Combobox 1" SYS "SendDlgItemMessage", !dlg%, comboboxDropDown%, CB_ADDSTRING, 0, "Combobox 2" SYS "SendDlgItemMessage", !dlg%, comboboxDropDown%, CB_ADDSTRING, 0, "Combobox 3" SYS "SendDlgItemMessage", !dlg%, comboboxDropDown%, CB_ADDSTRING, 0, "Combobox 4" SYS "SendDlgItemMessage", !dlg%, comboboxDropDown%, CB_ADDSTRING, 0, "Combobox 5" SYS "SendDlgItemMessage", !dlg%, comboboxDropDown%, CB_ADDSTRING, 0, "Combobox 6" SYS "SendDlgItemMessage", !dlg%, comboboxDropDown%, CB_ADDSTRING, 0, "Combobox 7" SYS "SendDlgItemMessage", !dlg%, comboboxDropDown%, CB_ADDSTRING, 0, "Combobox 8" SYS "SendDlgItemMessage", !dlg%, comboboxDropDown%, CB_SETCURSEL, 3, 0 SYS "SendDlgItemMessage", !dlg%, listboxList%, LB_ADDSTRING, 0, "Listbox item 0" SYS "SendDlgItemMessage", !dlg%, listboxList%, LB_ADDSTRING, 0, "Listbox item 1" SYS "SendDlgItemMessage", !dlg%, listboxList%, LB_ADDSTRING, 0, "Listbox item 2" SYS "SendDlgItemMessage", !dlg%, listboxList%, LB_ADDSTRING, 0, "Listbox item 3" SYS "CheckRadioButton", !dlg%, radiobuttonButton1%, radiobuttonButton2%, radiobuttonButton2% SYS "SendDlgItemMessage", !dlg%, dlgctrlNumberBox%, UDM_SETRANGE, 0, 15 REM --------------------- START OF THE INTERESTING BIT -------------- INSTALL @lib$+"EVENTLIB" PROC_eventinit PROC_eventregister(WM_COMMAND, PROCreportevent()) REPEAT PROC_eventpoll WAIT 1 UNTIL FALSE END DEF PROCreportevent(M%, W%, L%) LOCAL controlID%, notificationCode% controlID% = W% AND &FFFF notificationCode% = W% >> 16 PRINT TIME$ ": Control "; controlID%; " sent notification "; CASE controlID% OF WHEN 900,901: CASE notificationCode% OF WHEN EN_KILLFOCUS: PRINT "EN_KILLFOCUS" WHEN EN_SETFOCUS: PRINT "EN_SETFOCUS" WHEN EN_CHANGE: PRINT "EN_CHANGE" WHEN EN_UPDATE: PRINT "EN_UPDATE" OTHERWISE PRINT "unknown" ENDCASE WHEN 903: CASE notificationCode% OF WHEN CBN_KILLFOCUS: PRINT "CBN_KILLFOCUS" WHEN CBN_SETFOCUS: PRINT "CBN_SETFOCUS" WHEN CBN_SELCHANGE: PRINT "CBN_SELCHANGE" WHEN CBN_DROPDOWN: PRINT "CBN_DROPDOWN" WHEN CBN_CLOSEUP: PRINT "CBN_CLOSEUP" WHEN CBN_SELENDOK: PRINT "CBN_SELENDOK" WHEN CBN_SELENDCANCEL: PRINT "CBN_SELENDCANCEL" OTHERWISE PRINT "unknown" ENDCASE WHEN 904: CASE notificationCode% OF WHEN LBN_KILLFOCUS: PRINT "LBN_KILLFOCUS" WHEN LBN_SETFOCUS: PRINT "LBN_SETFOCUS" WHEN LBN_SELCHANGE: PRINT "LBN_SELCHANGE" OTHERWISE PRINT "unknown" ENDCASE WHEN 1,2,905,906,907,908: CASE notificationCode% OF WHEN BN_CLICKED: PRINT "BN_CLICKED" OTHERWISE PRINT "unknown" ENDCASE OTHERWISE PRINT "unknown" ENDCASE ENDPROC