Windows.h input
<p>For the last 2 weeks i`ve been trying to make a program using <strong>windows.h</strong> library (for the simple use of GUI ). I managed to make a textbox that you can write in , but my problem is that you can only introduce data as <strong>char*</strong> . The programm is ment for my workers to be able to calculate some formulas easier &amp; faster. How can i transform the char to an int , without having trouble with ASCII codes? </p>

<p>*I have also tried using strings. This is my actual code :</p>

<pre><code>#if defined(UNICODE) &amp;&amp; !defined(_UNICODE)
#define _UNICODE
#elif defined(_UNICODE) &amp;&amp; !defined(UNICODE)
#define UNICODE
#endif

#include &lt;tchar.h&gt;
#include &lt;windows.h&gt;
#include &lt;string&gt;
using namespace std;

/*  Declare Windows procedure  */
LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);

HWND textstatic,texteditz1,texteditz2,textedit2,buttoncalculate,button2;

/*  Make the class name into a global variable  */
string inputZ1,inputZ2;
char *cinputZ1 = &amp;inputZ1[0u];
TCHAR szClassName[ ] = _T("CodeBlocksWindowsApp");

int WINAPI WinMain (HINSTANCE hThisInstance,
                 HINSTANCE hPrevInstance,
                 LPSTR lpszArgument,
                 int nCmdShow)
{
HWND hwnd;               /* This is the handle for our window */
MSG messages;            /* Here messages to the application are saved */
WNDCLASSEX wincl;        /* Data structure for the windowclass */

/* The Window structure */
wincl.hInstance = hThisInstance;
wincl.lpszClassName = szClassName;
wincl.lpfnWndProc = WindowProcedure;      /* This function is called by windows */
wincl.style = CS_DBLCLKS;                 /* Catch double-clicks */
wincl.cbSize = sizeof (WNDCLASSEX);

/* Use default icon and mouse-pointer */
wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
wincl.lpszMenuName = NULL;                 /* No menu */
wincl.cbClsExtra = 0;                      /* No extra bytes after the window class */
wincl.cbWndExtra = 0;                      /* structure or the window instance */
/* Use Windows's default colour as the background of the window */
wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;

/* Register the window class, and if it fails quit the program */
if (!RegisterClassEx (&amp;wincl))
    return 0;

/* The class is registered, let's create the program*/
hwnd = CreateWindowEx (
       0,                   /* Extended possibilites for variation */
       szClassName,         /* Classname */
       _T("Code::Blocks Template Windows App"),       /* Title Text */
       WS_OVERLAPPEDWINDOW, /* default window */
       CW_USEDEFAULT,       /* Windows decides the position */
       CW_USEDEFAULT,       /* where the window ends up on the screen */
       500,                 /* The programs width */
       500,                 /* and height in pixels */
       HWND_DESKTOP,        /* The window is a child-window to desktop */
       NULL,                /* No menu */
       hThisInstance,       /* Program Instance handler */
       NULL                 /* No Window Creation data */
       );

/* Make the window visible on the screen */
ShowWindow (hwnd, nCmdShow);

/* Run the message loop. It will run until GetMessage() returns 0 */
while (GetMessage (&amp;messages, NULL, 0, 0))
{
    /* Translate virtual-key messages into character messages */
    TranslateMessage(&amp;messages);
    /* Send message to WindowProcedure */
    DispatchMessage(&amp;messages);
}

/* The program return-value is 0 - The value that PostQuitMessage() gave */
return messages.wParam;
}


/*  This function is called by the Windows function DispatchMessage()  */

LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{

switch (message)                  /* handle the messages */
{
    case WM_CREATE:
    texteditz1 = CreateWindow ("EDIT","",
                               WS_VISIBLE | WS_CHILD,
                               60,50,45,14,
                               hwnd, (HMENU) 4,NULL,NULL);

    texteditz2 = CreateWindow ("EDIT","",
                               WS_VISIBLE | WS_CHILD,
                               60,30,45,14,
                               hwnd, (HMENU) 5 ,NULL , NULL);

    textstatic = CreateWindow ("STATIC",
                                "Z2=",
                                WS_VISIBLE | WS_CHILD,
                                30,50,30,15,
                                hwnd, NULL, NULL, NULL);

    textstatic = CreateWindow ("STATIC",
                                "Z1=",
                                WS_VISIBLE | WS_CHILD,
                                30,30,30,15,
                                hwnd, NULL, NULL, NULL);

    textstatic = CreateWindow ("STATIC",
                                "x1min=",
                                WS_VISIBLE | WS_CHILD,
                                30,70,50,15,
                                hwnd, NULL, NULL, NULL);


    buttoncalculate = CreateWindow ("BUTTON",
                                    "Calculate",
                                    WS_VISIBLE | WS_CHILD,
                                    150, 300, 70, 15,
                                    hwnd, (HMENU) 1, NULL, NULL);
    button2 = CreateWindow ("BUTTON","apasa",
                            WS_VISIBLE | WS_CHILD,
                            300, 300, 70, 15,
                            hwnd, (HMENU) 2, NULL, NULL);

    break;

    case WM_COMMAND:

        switch (LOWORD(wParam))
        {
            case 1:
                {
                int text=0 ,text2=0 ;

                text=GetWindowText(texteditz1,inputZ1,5);
                text2=GetWindowText(texteditz2,inputZ2,5);
                ::MessageBox(hwnd, inputZ1, "Button",MB_OK);
                ::MessageBox(hwnd, inputZ2, "Text2",MB_OK);
                }
                break;
            case 2:
                ::MessageBox (hwnd, "251", "button",NULL);
            break;

        }
    break;
    case WM_DESTROY:
        PostQuitMessage (0);       /* send a WM_QUIT to the message queue */
        break;
    default:                      /* for messages that we don't deal with */
        return DefWindowProc (hwnd, message, wParam, lParam);

}


return 0;
}
</code></pre>