title: How to create an embedded text input box in win32 windows
body: <p>I want to create a little box embedded in my main window that can accept text input and contain buttons. When I say embedded, I mean I want it to be integrated in my main window seamlessly without its own close button. I have searched google endlessly and have not found an answer that does not involve mfc or .net. How can I do this in a raw win32 application. Please add your code to my skeleton shown below. Thanks!</p>
  
  <pre><code>#include &lt;windows.h&gt;
  
  LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;
  
  int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                      PSTR szCmdLine, int iCmdShow)
  {
       static TCHAR szAppName[] = TEXT ("App") ;
       HWND         hwnd ;
       MSG          msg ;
       WNDCLASS     wndclass ;
  
       wndclass.style         = CS_HREDRAW | CS_VREDRAW ;
       wndclass.lpfnWndProc   = WndProc ;
       wndclass.cbClsExtra    = 0 ;
       wndclass.cbWndExtra    = 0 ;
       wndclass.hInstance     = hInstance ;
       wndclass.hIcon         = LoadIcon (NULL, IDI_APPLICATION) ;
       wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW) ;
       wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
       wndclass.lpszMenuName  = NULL ;
       wndclass.lpszClassName = szAppName ;
  
       if (!RegisterClass (&amp;wndclass))
       {
            MessageBox (NULL, TEXT ("This program requires Windows NT!"),
                        szAppName, MB_ICONERROR) ;
            return 0 ;
       }
  
       hwnd = CreateWindow (szAppName,                  // window class name
                            TEXT ("App"), // window caption
                            WS_OVERLAPPEDWINDOW,        // window style
                            CW_USEDEFAULT,              // initial x position
                            CW_USEDEFAULT,              // initial y position
                            CW_USEDEFAULT,              // initial x size
                            CW_USEDEFAULT,              // initial y size
                            NULL,                       // parent window handle
                            NULL,                       // window menu handle
                            hInstance,                  // program instance handle
                            NULL) ;                     // creation parameters
  
       ShowWindow (hwnd, iCmdShow) ;
       UpdateWindow (hwnd) ;
  
       while (GetMessage (&amp;msg, NULL, 0, 0))
       {
            TranslateMessage (&amp;msg) ;
            DispatchMessage (&amp;msg) ;
       }
       return msg.wParam ;
  }
  
  LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
  {
       HDC         hdc ;
       PAINTSTRUCT ps ;
       RECT        rect ;
  
       switch (message)
       {
       case WM_CREATE:
  
            return 0 ;
  
       case WM_PAINT:
            hdc = BeginPaint (hwnd, &amp;ps) ;
  
  
  
            EndPaint (hwnd, &amp;ps) ;
            return 0 ;
  
       case WM_DESTROY:
            PostQuitMessage (0) ;
            return 0 ;
       }
       return DefWindowProc (hwnd, message, wParam, lParam) ;
  }
  </code></pre>