Can't find the information you are looking for here? Then leave a message over on our WinBatch Tech Support Forum.
Keywords:Multiline editbox edit box button dialog default focus
I need a single button dialog that doesn't have a default button specified. I don't want the dialog to be dismissed when the user presses the ENTER key on the keyboard. I want them to have to click on the button with their mouse.
;Here is the only trick I could come up with. It uses a MULTILINEBOX control ;(with zero coordinates and a tab value of 1) to accept all enter keys. MyDialogFormat=`WWWDLGED,6.1` MyDialogCaption=`WIL Dialog 1` MyDialogX=102 MyDialogY=106 MyDialogWidth=315 MyDialogHeight=192 MyDialogNumControls=002 MyDialogProcedure=`DEFAULT` MyDialogFont=`DEFAULT` MyDialogTextColor=`DEFAULT` MyDialogBackground=`DEFAULT,DEFAULT` MyDialogConfig=0 MyDialog001=`122,082,034,011,PUSHBUTTON,DEFAULT,"My Button",1,2,0,DEFAULT,DEFAULT,DEFAULT` MyDialog002=`0,0,0,0,MULTILINEBOX,Hidden,"",DEFAULT,1,0,DEFAULT,DEFAULT,DEFAULT` ButtonPushed=Dialog("MyDialog")
;============================================================ ;============================================================ ;============================================================ #DefineSubRoutine ClickOnly(NoReturn_Handle,NoReturn_Message,NoReturn_ID,rsvd1,rsvd2) ;DialogprocOptions Constants MSG_INIT=0 ; The one-time initialization MSG_TIMER=1 ; Timer event MSG_BUTTONPUSHED=2 ; Pushbutton or Picturebutton MSG_RADIOPUSHED=3 ; Radiobutton clicked MSG_CHECKBOX=4 ; Checkbox clicked MSG_EDITBOX=5 ; Editbox or Multilinebox MSG_FILESELECT=6 ; Filelistbox MSG_ITEMSELECT=7 ; Itembox MSG_COMBOCHANGE=8 ; Combobox/Droplistbox MSG_CALENDAR=9 ; Calendar date change MSG_SPINNER=10 ; Spinner number change MSG_CLOSEVIA49=11 ; Close clicked (Enabled via Intcontrol 49) MSG_FILEBOXDOUBLECLICK=12 ; Get double-click message on a FileListBox MSG_ITEMBOXDOUBLECLICK=13 ; Get double-click message on an ItemBox DPO_DISABLESTATE=1000 ; codes -1=GetSetting 0=EnableDialog 1=DisableDialog DPO_CHANGEBACKGROUND=1001 ; -1=GetSetting otherise bitmap or color string ;DialogControlState Constants DCSTATE_SETFOCUS=1 ; Give Control Focus DCSTATE_QUERYSTYLE=2 ; Query control's style DCSTATE_ADDSTYLE=3 ; Add control style DCSTATE_REMOVESTYLE=4 ; Remove control style DCSTATE_GETFOCUS=5 ; Get control that has focus DCSTYLE_INVISIBLE=1 ; Set Control Invisible DCSTYLE_DISABLED=2 ; Set Control Disabled DCSTYLE_NOUSERDATA=4 ; Note: Setable via DialogControlState function ONLY SPINNER control only DCSTYLE_READONLY=8 ; Sets control to read-only (user cannot type in data) EDITBOX MULTILINEBOX SPINNER DCSTYLE_PASSWORD=16 ; Sets 'password mode' where only *'s are displayed EDITBOX DCSTYLE_DEFAULTBUTTON=32 ; Sets a button as the default button PUSHBUTTON PICTUREBUTTON DCSTYLE_DIGITSONLY=64 ; Set edit box to accept digits only EDITMOX MULTILINEBOX DCSTYLE_FLAT=128 ; Makes a 'flat' hyperlink-looking button PUSHBUTTON PICTUREBUTTON DCSTYLE_NOADJUST=256 ; Turns off auto-height adjustment ITEMBOX FILELISTBOX DCSTYLE_TEXTCENTER=512 ; Center text in control VARYTEXT STATICTEXT DCSTYLE_TEXTRIGHT=1024 ; Flush-Right text in control VARYTEXT STATICTEXT ;DialogControlSet / DialogControlGet Constants DC_CHECKBOX=1 ; CHECKBOX DC_RADIOBUTTON=2 ; RADIOBUTTON DC_EDITBOX=3 ; EDITBOX MULTILINEBOX DC_TITLE=4 ; PICTURE RADIOBUTTON CHECKBOX PICTUREBUTTON VARYTEXT STATICTEXT GROUPBOX PUSHBUTTON DC_ITEMBOXCONTENTS=5 ; ITEMBOX FILELISTBOX DROPLISTBOX DC_ITEMBOXSELECT=6 ; ITEMBOX FILELISTBOX DROPLISTBOX DC_CALENDAR=7 ; CALENDAR DC_SPINNER=8 ; SPINNER DC_MULTITABSTOPS=9 ; MULTILINEBOX DC_ITEMSCROLLPOS=10 ; ITEMBOX FILELISTBOX DC_BACKGROUNDCOLOR=11 ; RADIOBUTTON CHECKBOX VARYTEXT STATICTEXT GROUPBOX PUSHBUTTON ITEMBOX FILELISTBOX DROPLISTBOX SPINNER EDITBOX MULTILINEBOX DC_PICTUREBITMAP=12 ; PICTURE PICTUREBUTTON DC_TEXTCOLOR=13 ; RADIOBUTTON CHECKBOX VARYTEXT STATICTEXT GROUPBOX PUSHBUTTON ITEMBOX FIELLISTBOX DROPLISTBOX SPINNER EDITBOX MULTILINEBOX DC_ITEMBOXADD=14 ; ITEMBOX FILELISTBOX DROPLISTBOX DC_ITEMBOXREMOVE=15 ; ITEMBOX FILELISTBOX DROPLISTBOX switch NoReturn_Message case MSG_INIT DialogProcOptions(NoReturn_Handle,MSG_TIMER, 100) DialogProcOptions(NoReturn_Handle,MSG_BUTTONPUSHED,@TRUE) return(-1) case MSG_BUTTONPUSHED ;ID 001 switch NoReturn_ID case 1 ; OK ; From mouse? ; Note: this takes care of all cases except when ; return key is pressed while mouse cursor is over ; OK buttton. if MouseInfo(0) == "OK" return(-1) ; Exit dialog else ; May cut down on processing by timer case? DialogControlState( NoReturn_Handle, 002, DCSTATE_SETFOCUS, 0) return(-2) ; Do nothing. endif case 2 ; Small ; Gets return key pressed messages and does nothing. return -2 ; Do nothing. endswitch case MSG_TIMER ; Prevent the OK buttom from getting the input focus ; and, therefore, the return key press message. if DialogControlState( NoReturn_Handle, 0, DCSTATE_GETFOCUS, 0) == 001 ; Change the focus to "small" unless OK has the focus ; because of a mouse button down. if (MouseInfo(4) != 4) || (MouseInfo(0) != "OK") DialogControlState( NoReturn_Handle, 002, DCSTATE_SETFOCUS, 0) endif endif return -2 endswitch ; NoReturn_Message return(-1) ; Do default processing #EndSubRoutine ;End of Dialog Callback ClickOnly ;============================================================ ;============================================================ ;============================================================ bMouseClick = @False NoReturnFormat=`WWWDLGED,6.1` NoReturnCaption=`Try Pressing The Return Key` NoReturnX=035 NoReturnY=105 NoReturnWidth=102 NoReturnHeight=051 NoReturnNumControls=002 NoReturnProcedure=`ClickOnly` NoReturnFont=`DEFAULT` NoReturnTextColor=`DEFAULT` NoReturnBackground=`DEFAULT,DEFAULT` NoReturnConfig=0 ; OK button must not be first in tab order. NoReturn001=`015,009,067,027,PUSHBUTTON,DEFAULT,"OK",1,2,0,DEFAULT,DEFAULT,DEFAULT` ; Small is the default button. NoReturn002=`000,000,0,0,PUSHBUTTON,DEFAULT,"Small",2,1,160,DEFAULT,DEFAULT,DEFAULT` ButtonPushed=Dialog("NoReturn")
Article ID: W16404
File Created: 2005:02:18:12:20:26
Last Updated: 2005:02:18:12:20:26