Problem is, is that I never subclassed in C++ before so I'm gonna have to study it up Its probably within a child window as well, which is also what I need to program. So far the IDE is getting there with the little code I have. I just need a splash screen prior to the IDE appearing, add more menu items, and of course a code window to type in:

c++ Code:
  1. #include <windows.h>
  2.  
  3. HWND hWnd;
  4. MSG msg;
  5. WNDCLASSEX wc;
  6. HBRUSH brush;
  7.  
  8. LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);
  9.  
  10. #define ID_FILE_EXIT 1000
  11.  
  12. int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nCmdShow)
  13. {
  14.     wc.cbSize        = sizeof(WNDCLASSEX);
  15.     wc.style         = CS_VREDRAW|CS_HREDRAW|CS_OWNDC;
  16.     wc.lpfnWndProc   = WindowProcedure;
  17.     wc.cbClsExtra    = 0;
  18.     wc.cbWndExtra    = 0;
  19.     wc.hInstance     = hInstance;
  20.     wc.hIcon         = NULL;
  21.     wc.hCursor       = LoadCursor(NULL, IDC_ARROW);
  22.     wc.hbrBackground = CreateSolidBrush(RGB(0, 0, 0));
  23.     wc.lpszMenuName  = NULL;
  24.     wc.lpszClassName = "IDE";
  25.     wc.hIconSm       = NULL;
  26.     RegisterClassEx(&wc);
  27.     hWnd = CreateWindowEx (0, "IDE", "VB Classic", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 800, 600, HWND_DESKTOP, NULL, hInstance, NULL);
  28.     ShowWindow (hWnd, SW_SHOWMAXIMIZED);
  29.     while (1)
  30.     {
  31.         if (PeekMessage(&msg,NULL,0,0,PM_REMOVE) > 0)
  32.         {
  33.             if (WM_QUIT == msg.message) break;
  34.             TranslateMessage (&msg);
  35.             DispatchMessage (&msg);
  36.         }
  37.        
  38.     }
  39.     return msg.wParam;
  40. }
  41.  
  42. LRESULT CALLBACK WindowProcedure (HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
  43. {
  44.     switch (msg)
  45.     {
  46.         case WM_CREATE:
  47.         {
  48.             HMENU hFile = CreateMenu();
  49.             HMENU hExit = CreateMenu();
  50.             AppendMenu(hFile, MF_POPUP, (UINT_PTR)hExit, "File");
  51.             AppendMenu(hExit, MF_STRING, ID_FILE_EXIT, "Exit");
  52.             SetMenu(hWnd, hFile);
  53.             break;
  54.         }
  55.         case WM_COMMAND:
  56.         {
  57.             switch(LOWORD(wParam))
  58.             {
  59.                 case ID_FILE_EXIT:
  60.                 {
  61.                     DestroyWindow(hWnd);
  62.                     return(0);
  63.                     break;
  64.                 }
  65.  
  66.             }
  67.             break;
  68.         }
  69.         case WM_DESTROY:
  70.             PostQuitMessage (0);
  71.             break;
  72.         case WM_KEYDOWN:
  73.             if(wParam == VK_ESCAPE)
  74.             {
  75.                 DestroyWindow(hWnd);
  76.                 return(0);
  77.             }
  78.             break;
  79.         default:
  80.             return DefWindowProc (hWnd, msg, wParam, lParam);
  81.     }
  82.     return 0;
  83. }