Thread: help adding a button and submitting text in input box

  1. #1
    Registered User
    Join Date
    Mar 2010
    Posts
    2

    help adding a button and submitting text in input box

    Hi guys i have been trying to create a small application that consists of a window with a input box and a button to submit the text placed into the inputbox. can someone look at the code and help me accomplish this. i have the input box in already just need a submit button and how the submit button gets clicked and submits the data. also how this could be accomplished with SendInput and SendMessage to send text to the inputbox and SendInput to get the button to click. thanks alot. code below.
    Code:
    #include <windows.h>
    
    /*  Declare Windows procedure  */
    LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);
    
    /*  Make the class name into a global variable  */
    char szClassName[ ] = "WindowsApp";
    
    int WINAPI WinMain (HINSTANCE hThisInstance,
                        HINSTANCE hPrevInstance,
                        LPSTR lpszArgument,
                        int nFunsterStil)
    
    {
        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 color as the background of the window */
        wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;
    
        /* Register the window class, and if it fails quit the program */
        if (!RegisterClassEx (&wincl))
            return 0;
    
        /* The class is registered, let's create the program*/
        hwnd = CreateWindowEx (
               0,                   /* Extended possibilites for variation */
               szClassName,         /* Classname */
               "Windows App",       /* Title Text */
               WS_OVERLAPPEDWINDOW, /* default window */
               CW_USEDEFAULT,       /* Windows decides the position */
               CW_USEDEFAULT,       /* where the window ends up on the screen */
               544,                 /* The programs width */
               375,                 /* 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 */
               );
               
    
    
     CreateWindow( "edit", "",
              WS_VISIBLE|WS_CHILD|WS_BORDER|ES_AUTOHSCROLL|ES_AUTOVSCROLL,
              0, 0, 300, 20, hwnd, (HMENU)1, hThisInstance, NULL);
    
        
    
    
        SetDlgItemText(hwnd, 1, "testing");
        
        /* Make the window visible on the screen */
        ShowWindow (hwnd, nFunsterStil);
    
        /* Run the message loop. It will run until GetMessage() returns 0 */
        while (GetMessage (&messages, NULL, 0, 0))
        {
            /* Translate virtual-key messages into character messages */
            TranslateMessage(&messages);
            /* Send message to WindowProcedure */
            DispatchMessage(&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_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;
    }

  2. #2
    Registered User UltraKing227's Avatar
    Join Date
    Jan 2010
    Location
    USA, New york
    Posts
    123
    step 1) dont use magic numbers (numbers used without reference).
    step 2) copy the exact CreateWindowEx of the input-box.
    step 3) change the "EDIT" to "BUTTON". head to the two parameters
    --------- which are ahead of the "EDIT".
    step 4) change it to "WS_VISIBLE | WS_CHILD | BS_PUSHBUTTON"
    --------- without the quotes.
    step 5) nothing, you have a button.

    but if you want a fairly working example of a button:

    Code:
     CreateWindow( "BUTTON", "",
     WS_VISIBLE|WS_CHILD|BS_PUSHBUTTON,
     INSERT_X, INSERT_Y, INSERT_WIDTH, INSERT_HEIGHT, hwnd, (HMENU)2, hThisInstance, NULL);
    next. how to check if the button has been pressed. add a new case to your
    switch command with the name 'WM_COMMAND:'. type the following info in
    it:

    Code:
    switch(LOWORD(wParam))
    {
     case 2:
      SetDlgItemText(hwnd, 1, "Clicked the Button!");
      break;
    }
    break;
    i hope it helped you. by the way, change the INSERT_X, INSERT_Y,
    INSERT_WIDTH, and INSERT_HEIGHT to anything you like. since they
    are just used for reference.

  3. #3
    Registered User
    Join Date
    Mar 2010
    Posts
    2
    thanks. thats great its eaxctly what i was after.

Popular pages Recent additions subscribe to a feed