' ' Prototype: ' ---------- ' FUNCTION Input_Box( BYVAL hParent AS DWORD, BYVAL title AS STRING, _ ' BYVAL message AS STRING, BYVAL defaut AS STRING _ ' ) AS STRING ' '------------------------------------------------------------------------------ ' ** Globals ** '------------------------------------------------------------------------------ GLOBAL inpb_str AS STRING '------------------------------------------------------------------------------ '------------------------------------------------------------------------------ ' ** CallBacks ** '------------------------------------------------------------------------------ CALLBACK FUNCTION ProcInputBox() SELECT CASE AS LONG CB.MSG CASE %WM_INITDIALOG ' Initialization handler LOCAL e AS STRING CONTROL SET FOCUS CB.HNDL, 101 CONTROL GET TEXT CB.HNDL, 101 TO e CONTROL SEND CB.HNDL, 101, %EM_SETSEL, LEN(e)+1, LEN(e)+1 CASE %WM_COMMAND ' Process control notifications IF CB.CTL = %IDCANCEL THEN DIALOG END CB.HNDL, 0 ELSEIF CB.CTL = %IDOK THEN CONTROL GET TEXT CB.HNDL, 101 TO inpb_str DIALOG END CB.HNDL, -1 END IF END SELECT END FUNCTION '------------------------------------------------------------------------------ '------------------------------------------------------------------------------ ' ** Dialogs ** '------------------------------------------------------------------------------ FUNCTION Input_Box(BYVAL hParent AS DWORD, BYVAL title AS STRING, _ BYVAL message AS STRING, BYVAL defaut AS STRING) AS STRING LOCAL lRes AS LONG inpb_str = "" lRes = ShowInputBox(hParent, title, message, defaut) IF lRes <> 0 THEN FUNCTION = inpb_str inpb_str = "" END FUNCTION '------------------------------------------------------------------------------ '------------------------------------------------------------------------------ FUNCTION ShowInputBox(BYVAL hParent AS DWORD, BYVAL title AS STRING, _ BYVAL message AS STRING, BYVAL defaut AS STRING) AS LONG LOCAL lRes AS LONG LOCAL hDlg AS DWORD LOCAL hIco AS DWORD DIALOG NEW PIXELS, hParent, title, 0, 0, 260, 100, _ %WS_POPUP OR%WS_BORDER OR %WS_DLGFRAME OR %WS_SYSMENU OR %WS_VISIBLE OR _ %WS_CLIPSIBLINGS OR %DS_MODALFRAME OR %DS_3DLOOK OR %DS_NOFAILCREATE OR _ %DS_SETFONT, %WS_EX_CONTROLPARENT OR %WS_EX_LEFT OR _ %WS_EX_LTRREADING OR %WS_EX_RIGHTSCROLLBAR, TO hDlg hIco = ExtractIcon(GetModuleHandle(""), "shell32.dll", 23) SetClassLong(hDlg, %GCL_HICONSM, hIco) SetClassLong(hDlg, %GCL_HICON, hIco) DeleteObject(hIco) CONTROL ADD LABEL, hDlg, 102, message, 6, 6, 180, 60 CONTROL ADD BUTTON, hDlg, %IDOK, "OK", 196, 6, 54, 24 CONTROL ADD BUTTON, hDlg, %IDCANCEL, "Cancel", 196, 32, 54, 24 CONTROL ADD TEXTBOX, hDlg, 101, defaut, 6, 70, 248, 24 DIALOG SHOW MODAL hDlg, CALL ProcInputBox TO lRes FUNCTION = lRes END FUNCTION '------------------------------------------------------------------------------