Para aquellos que necesiten algo similar dejo el código (No es nada estético ni complicado.)
- #include <windows.h> 
- #include <iostream> 
- #include <cstring> 
-   
- using namespace std; 
-   
- LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM); 
-   
- char szClassName[ ] = "WindowsApp"; 
-   
- int main (int count, char* args[]) 
- { 
-     bool flag = true; 
-   
-     ........... 
-   
-     if(flag) 
-     { 
-         HWND hwnd; 
-         MSG messages; 
-         WNDCLASSEX wincl; 
-   
-         /* The Window structure */ 
-         wincl.hInstance = NULL; 
-         wincl.lpszClassName = szClassName; 
-         wincl.lpfnWndProc = WindowProcedure; 
-         wincl.style = CS_DBLCLKS; 
-         wincl.cbSize = sizeof (WNDCLASSEX); 
-         wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION); 
-         wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION); 
-         wincl.hCursor = LoadCursor (NULL, IDC_ARROW); 
-         wincl.lpszMenuName = NULL; 
-         wincl.cbClsExtra = 0;  
-         wincl.cbWndExtra = 0;                       
-         wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND; 
-   
-         if (!RegisterClassEx (&wincl)) 
-             return 0; 
-   
-         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, 
-                NULL,  
-                NULL,  
-                NULL 
-                ); 
-   
-         ShowWindow (hwnd, 1); 
-   
-         while (GetMessage (&messages, NULL, 0, 0)) 
-         { 
-             TranslateMessage(&messages); 
-             DispatchMessage(&messages); 
-         } 
-     } 
-     else 
-     { 
-         cout<<":D"<<endl; 
-         cin.get(); 
-     } 
-   
-     return 0; 
- } 
-   
- LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) 
- { 
-     switch (message) 
-     { 
-         case WM_DESTROY: 
-             PostQuitMessage (0); 
-             break; 
-         default:  
-             return DefWindowProc (hwnd, message, wParam, lParam); 
-     } 
-   
-     return 0; 
- } 
PD: Es obvio que mas estético y cómodo se vería separar toda la creación de la ventana en un método aparte 

Saludos....