title: C++ Window application opening with an additional window. How do I get rid of the second window?
body: <p>I have recently started C++ programming and when I had finished my first program I compiled and ran the program which worked however when ran it always opens a second window with the title \bin\Debug\C++ 2d Games tutorial. Here is a image of what is happening.</p>
  
  <p><a href="http://i.imgur.com/e9p9hT0.png" rel="nofollow">http://i.imgur.com/e9p9hT0.png</a> </p>
  
  <p>What have I done wrong for this to happen? I just want my application window to run without the other one in the background. The code that I have written is also provided here. </p>
  
  <pre><code>    // winmain.cpp
      #define DEFINE_LEAN_AND_MEAN
      #include &lt;iostream&gt;
      #include &lt;windows.h&gt;
      #include "StdAfx.h
      // Function prototypes
      int WINAPI WinMain (HINSTANCE, HINSTANCE, LPSTR, int);
      bool CreateMainWindow(HINSTANCE, int);
      LRESULT WINAPI WinProc(HWND, UINT, WPARAM, LPARAM);
      // Global variable
      HINSTANCE hinst;
      // Constants
      const char CLASS_NAME[] = "WinMain";
      const char APP_TITLE[] = "Hello World";  // title bar text
      const int WINDOW_WIDTH = 400;
      const int WINDOW_HEIGHT = 400;
      //=================
      // Starting point for a windows application
      // parameters are
      //       hInstance. Handle to the current instance of the application
      // hPrevInstance. Always NULL, obsolete parameter
      // lpCmdLine. Pointer to null-terminated string of command line arguements
      // nCmdShow. Specifies how the window is to be shown
      //=======================
      int WINAPI WinMain(HINSTANCE hInstance,
                                              HINSTANCE hPrevInstance,
                                              LPSTR        lpCmdLine,
                                              int                   nCmdShow)
      {
          MSG msg;
          // Create the window
          if(!CreateMainWindow(hInstance, nCmdShow) )
                      return false;
               // Main message loop
               int done = 0;
               while (!done)
                          {
                                   //PeekMessage is non blocking test for Windows messages
                           if (PeekMessage (&amp;msg, NULL, 0, 0, PM_REMOVE) )
                              {
  
                                      // Look for quit message
                                      if (msg.message == WM_QUIT)
                                                 done = 1;
                                      // Decode and pass messages on to WinProc
                                      TranslateMessage(&amp;msg);
                                      DispatchMessage(&amp;msg);
  
                                                              }
  
          }
          return msg.wParam;
      }
      //==================
      // Window event callback function
      //===================
      LRESULT WINAPI WinProc ( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam )
      {
            switch( msg )
            {
                    case WM_DESTROY:
                    // Tell windows to kill the program
                    PostQuitMessage(0);
                    return 0;
  
             }
             return DefWindowProc (hWnd, msg, wParam, lParam );
  
      }
      //==========
      // Create the window
      // returns: false on error
      //=============
      bool CreateMainWindow(HINSTANCE hInstance, int nCmdShow)
      {
               WNDCLASSEX wcx;
               HWND hwnd;
  
             // Fill in the window clasa structure with parameters
             // that describes the main window
     wcx.cbSize = sizeof(wcx);          // size of structure
     wcx.style = CS_HREDRAW | CS_VREDRAW;  // Redraw if size changes
     wcx.lpfnWndProc =WinProc;                // Points to the window Procedure
     wcx.cbClsExtra = 0;                               // No extra class memory
     wcx.cbWndExtra = 0;      // No extra window memory
     wcx.hInstance = hInstance;   // Handle to instance
     wcx.hIcon = NULL;
     wcx.hCursor =LoadCursor(NULL, IDC_ARROW);    // Predefined arrow
     // Background brush
     wcx.hbrBackground = (HBRUSH)GetStockObject (BLACK_BRUSH);
     wcx.lpszMenuName =NULL; // Name of the menu resource
     wcx.lpszClassName = CLASS_NAME;   // Name of the window class
     wcx.hIconSm = NULL;                         // Small class icon
  
  
      // Register the window class
      // RegisterClassEx return 0 on error
      if (RegisterClassEx(&amp;wcx) == 0)                // If error
             return false;
      // Create Window
      hwnd = CreateWindow(
         CLASS_NAME,             // Name of the window class
         APP_TITLE,                   // Title bar text
         WS_OVERLAPPEDWINDOW,          // Window style
         CW_USEDEFAULT,            // Default horizontal position of the window
         CW_USEDEFAULT,         //  Default horizontal positin of the window
         WINDOW_WIDTH,     // Width of window
         WINDOW_HEIGHT,      // Height of the window
         (HWND) NULL,          // No parent menu
         (HMENU) NULL,     // No menu
         hInstance,      // Handle to application instance
         (LPVOID) NULL);      // No window parameters
         // If there was an error creating the window
         if (!hwnd)
                      return false;
          // Show the window
          ShowWindow(hwnd, nCmdShow);
          // Send a WM_PAINT message to the window procedure
          UpdateWindow(hwnd);
          return true;
          }
  </code></pre>
  
  <p>Any help fixing this would be greatly appreciated. As I said before I am new to this and I don't know what I have done wrong. If it helps any this was compiled in code blocks. </p>
  
  <p>Kind Regards</p>