// WINAPP1.CPP A simple Windows application in C++ #include <windows.h> // Declaration of the window message-handling procedure LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM); // The WinMain function definition--execution begins here int PASCAL WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow) { HWND hWnd; // window's handle MSG msg; // a message structure WNDCLASS wndclass; // window class structure // Set up a new window class with desired properties wndclass.style = CS_HREDRAW | CS_VREDRAW; wndclass.lpfnWndProc = WndProc; wndclass.cbClsExtra = 0; wndclass.cbWndExtra = 0; wndclass.hInstance = hInstance; wndclass.hIcon = NULL; wndclass.hCursor = NULL; wndclass.hbrBackground = (HBRUSH)GetStockObject (WHITE_BRUSH); wndclass.lpszMenuName = NULL; wndclass.lpszClassName = TEXT("MyClass"); // try to register the new class if (!RegisterClass (&wndclass)) return(0); // Create the window hWnd = CreateWindow (TEXT("MyClass"),TEXT ("My First Window"), WS_OVERLAPPEDWINDOW,10,10,200,100,NULL,NULL,hInstance,NULL); ShowWindow (hWnd, nCmdShow); // display the window UpdateWindow (hWnd); // paint client area while (GetMessage (&msg, NULL, 0, 0)) // message loop { DispatchMessage (&msg) ; // Tell Windows to send new... } // message to the class WndProc return ((int)msg.wParam); // Quit } // WndProc() -- custom function for processing Windows messages LRESULT CALLBACK WndProc (HWND hWnd, UINT wMessage, WPARAM wParam, LPARAM lParam) { switch (wMessage) // determine what kind of message { case WM_DESTROY: // determine what kind of message PostQuitMessage(0); // put WM_QUIT msg in pgm's msg Q break ; // break out of switch statement default: // default Windows message processing return DefWindowProc(hWnd,wMessage,wParam,lParam); } return(0); }