|
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 dlg%=FN_newdialog("Dialogue box", 20, 20, 160, 128, 8, 560) Adr0%=(dlg%!12+4) AND -3 : REM adr of groupbox ........................ PROC_groupbox(dlg%, "Group box", 0, 4, 4, 152, 96, WS_GROUP) PROC_editbox(dlg%, "Text box", 101, 12, 20, 64, 12, ES_AUTOHSCROLL) PROC_editbox(dlg%, "123456", 102, 82, 20, 64, 12, ES_NUMBER) PROC_dlgctrl(dlg%, "", 109, 0, 0, 12, 12, WS_VISIBLE OR WS_CHILD OR \ \ UDS_AUTOBUDDY OR UDS_ALIGNRIGHT OR UDS_SETBUDDYINT, "msctls_updown32") Adr1%=(dlg%!12+4) AND -3 : REM adr of combobox ........................ PROC_combobox(dlg%, "", 103, 12, 40, 64, 60, CBS_DROPDOWNLIST) Adr2%=(dlg%!12+4) AND -3 : REM adr of listbox ......................... PROC_listbox(dlg%, "", 104, 82, 40, 64, 48, 0) PROC_radiobutton(dlg%, "Radiobutton 1", 105, 12, 64, 64, 10, 0) PROC_radiobutton(dlg%, "Radiobutton 2", 106, 12, 82, 64, 10, 0) PROC_checkbox(dlg%, "Checkbox", 107, 82, 82, 64, 10, 0) PROC_pushbutton(dlg%, "OK", 1, 12, 108, 56, 14, WS_GROUP OR BS_DEFPUSHBUTTON) PROC_pushbutton(dlg%, "Cancel", 2, 92, 108, 56, 14, 0) PROC_showdialog(dlg%) ON CLOSE PROC_closedialog(dlg%):QUIT ON ERROR PROC_closedialog(dlg%):PRINT'REPORT$:END PROC_fill : REM Initialise the content .............. Click%=0 ON SYS Click% = @wparam% : RETURN Step%=10 : X%=0 : REM ............................... REPEAT MOUSE x,y,b:WHILE b:MOUSE x,y,b:WAIT 0:ENDWHILE : REM just to prevent moving the dialog from blocking this demo REM manipulate template values -------------------- X%+=Step% IF X%>90 OR X%<10 THEN Step%=-Step% Adr1%!12=(60<<16) OR 64+X% : REM combobox cx% '(cy%<<16) OR cx%' Adr2%!8 =(40<<16) OR 82+X% : REM listbox x% Adr2%!12=(48<<16) OR 64+X% : REM listbox cx% Adr0%!12=(96<<16) OR 152+X%*2 : REM groupbox cx% dlg%!30 =(128<<16)OR 160+X%*2 : REM dialog cx% PROC_closedialog(dlg%) : PROC_showdialog(dlg%) PROC_fill : REM Re-initialise the content REM ----------------------------------------------- WAIT 50 click%=0 SWAP Click%, click% UNTIL click%=1 OR click%=2 OR !dlg%=0 IF click%=1 THEN PRINT "OK pressed, settings were:"' DIM text% 255 SYS "GetDlgItemText", !dlg%, 101, text%, 255 PRINT "Text box contained """$$text%"""" SYS "GetDlgItemInt", !dlg%, 102, 0, 1 TO Val% PRINT "Number box contained ";Val% SYS "GetDlgItemText", !dlg%, 103, text%, 255 PRINT "Combobox selection was """$$text%"""" SYS "SendDlgItemMessage", !dlg%, 104, LB_GETCURSEL, 0, 0 TO sel% PRINT "Listbox selection index was ";sel% SYS "IsDlgButtonChecked", !dlg%, 105 TO rb1% IF rb1% PRINT "Radiobutton 1 was checked" ELSE PRINT "Radiobutton 2 was checked" SYS "IsDlgButtonChecked", !dlg%, 107 TO cb% IF cb% PRINT "Checkbox was checked" ELSE PRINT "Checkbox was not checked" ELSE PRINT "Cancel pressed" ENDIF PROC_closedialog(dlg%) END DEF PROC_fill SYS "SendDlgItemMessage", !dlg%, 103, CB_ADDSTRING, 0, "Combobox 1" SYS "SendDlgItemMessage", !dlg%, 103, CB_ADDSTRING, 0, "Combobox 2" SYS "SendDlgItemMessage", !dlg%, 103, CB_ADDSTRING, 0, "Combobox 3" SYS "SendDlgItemMessage", !dlg%, 103, CB_ADDSTRING, 0, "Combobox 4" SYS "SendDlgItemMessage", !dlg%, 103, CB_SETCURSEL, 0, 0 SYS "SendDlgItemMessage", !dlg%, 104, LB_ADDSTRING, 0, "Listbox item 0" SYS "SendDlgItemMessage", !dlg%, 104, LB_ADDSTRING, 0, "Listbox item 1" SYS "SendDlgItemMessage", !dlg%, 104, LB_ADDSTRING, 0, "Listbox item 2" SYS "SendDlgItemMessage", !dlg%, 104, LB_ADDSTRING, 0, "Listbox item 3" SYS "CheckRadioButton", !dlg%, 105, 106, 105 SYS "SendDlgItemMessage", !dlg%, 109, UDM_SETRANGE, 0, 999 ENDPROC
|