2.1.27.16 InputBox


Description

Opens a simple input box for entering a number (double)


Opens a simple input box for entering a string.

Syntax

double InputBox( double dDefault, LPCSTR lpcszMsg = NULL )


string InputBox( LPCSTR lpcszMsg, LPCSTR lpcszDeault = NULL, DWORD dwOption = 0 )

Parameters

dDefault
[input] default value, must be supplied, to be shown when dialog is open
lpcszMsg
[input] Pointer to a string containing a message used to prompt the user.


lpcszMsg
[input] Pointer to a string containing a message used to prompt the user.
lpcszDeault
[input] optional pointer to a string with default value, if NULL, then edit box will be empty
dwOption
[input] The lowest 4 bits (0-15) is used to indicate multiline edit box. 0 or 1 will use single line, otherwise the number of lines

Return

the value entered by the user, or NANUM if use cancel, or if user types in none-numeric


the string which has been input

Examples

EX1

void test_input(double dd = 12.3)
{
    double vv = dd;
    double v2 = InputBox(vv);
    if(is_missing_value(v2))
        out_str("User cancelled or invalid");
    else
    {
        Worksheet wks = Project.ActiveLayer();
        wks.SetCell(0 ,1, vv);
        wks.SetCell(1, 1, v2);
    }
}

EX2

// use inside GetNBox event
#include <GetNBox.h>
void test_number(double dd = 12.45)
{
    double v1 = rnd();
    v1 *= dd;
    GETN_TREE(tr)
    GETN_NUM(v1, "Number", v1) GETN_READ_ONLY
    GETN_BUTTON_GROUP(bb, "Button", 0, "Get Value...")  GETN_OPTION_EVENT_EX(test_getval_event) 
    if( GetNBox( tr, "Title Test", "Test Get Value", NULL, NULL, GetWindow() ))
        out_tree( tr );
}        
bool test_getval_event(TreeNode& trGUI, int nRow, int nCol, TreeNode& trNode, DWORD dwCntrl, int nType, WndContainer& theDlg)
{
    if(ONODETYPE_PUSHBUTTON_GROUP != nType || (GETNEVENT_ON_INIT & dwCntrl))
        return false;
    
    double dd = InputBox(trGUI.v1.dVal, "Please Type Some Value");
    if(!is_missing_value(dd))
    {    
        trGUI.v1.dVal = dd;    
        return true;
    }
    else
        return false;
}


EX3

// This is a self contained sample program for the function InputBox, 
// To run the program, enter the following command in the Script window:
//   InputBox_ex1
// When you enter "12.34 56" in the input box, the following 
// meassage will be printed:
//   Entered string: "12.34 56"
//   Obtained numbers: v1=12.340000, v2=56.000000
// If you click the Cancel button, the follwoing message will 
// be printed:
//   Cancel button was clicked.
//
void    InputBox_ex1()
{
    string strInput;
    float v1,v2;
    
    try
    {
        strInput = InputBox("Enter two numbers\nseparated by spaces:")
    }
    catch(int nErr)
    {
        printf("Cancel button was clicked.\n");
        return ;
    }
    sscanf(strInput,"%f %f",&v1,&v2);
    printf("  Entered string: \"%s\"\n  Obtained numbers: v1=%f, v2=%f\n", 
        strInput,v1,v2);
}

EX4

// This example shows how to edit multiline string with InputBox
void    InputBox_ex2()
{
    string str = "line1\r\nline2";
    float v1,v2;

    try
    {
        str = InputBox("multi-line edit:", str, 4);
    }
    catch(int nErr)
    {
        printf("Cancel button was clicked.\n");
        return ;
    }
    printf("You have entered:\n%s\n", str);
}

Remark

Open a simple input box for entering a numeric, it will return NANUM when user cancel or input is not numeric value. To tell cancel from invalid input, user can use GetNBox to handle details.

Open a simple input box for entering a string. Need to use the try-and-catch structure to detect the Cancel button clicked, or else will throw runtime error exception when user cancel.

See Also

GetNBox

Header to Include

origin.h

Reference