/* A minimal windows skeleton program. */ #include LRESULT CALLBACK WindowFunc(HWND, UINT, WPARAM, LPARAM); /* name of windows class */ char szWinName[] = "MyWin"; int WINAPI WinMain(HINSTANCE hThisInst, HINSTANCE hPrevInst,LPSTR lpszArgs, int nWinMode) { HWND hwnd; MSG msg; WNDCLASSEX wcl; /* Define a window class. */ wcl.cbSize = sizeof(WNDCLASSEX); wcl.hInstance = hThisInst; /* handle to this instance */ wcl.lpszClassName = szWinName; /* window class name */ wcl.lpfnWndProc = WindowFunc; /* window function */ wcl.style = 0; /* default style */ wcl.hIcon = LoadIcon(NULL,IDI_APPLICATION);/*std icon */ wcl.hIconSm= LoadIcon(NULL,IDI_WINLOGO);/*small icon */ wcl.hCursor= LoadCursor(NULL,IDC_ARROW);/*cursor style */ wcl.lpszMenuName = NULL; /* no menu */ wcl.cbClsExtra = 0; /* no extra */ wcl.cbWndExtra = 0; /* information needed */ /* Make the window background white. */ wcl.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH); /* Register the window class */ if(!RegisterClassEx(&wcl)) return 0; /* Now that a window class has been registered, ** a window can be created. */ hwnd = CreateWindow( szWinName, /* name of window class */ "Windows Skeleton Program", /* title */ WS_OVERLAPPEDWINDOW, /* window style:normal */ CW_USEDEFAULT, /* X coordinate - let windows decide */ CW_USEDEFAULT, /* Y coordinate - let windows decide */ CW_USEDEFAULT, /* width - let windows decide */ CW_USEDEFAULT, /* height- let windows decide */ HWND_DESKTOP, /* no parent window */ NULL, hThisInst, /*handle of this instance of hte program */ NULL /* no additional arguments */ ); /* Display the window. */ ShowWindow(hwnd, nWinMode); UpdateWindow(hwnd); /* Create the message loop. */ while(GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg);/* allow use of keyboard */ DispatchMessage(&msg); /*return control to windows */ } return msg.wParam; } /* This function is called by Windows NT and ** is passed message from the message queue. *********************************************/ LRESULT CALLBACK WindowFunc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { switch(message) { case WM_DESTROY: /* terminate the program */ PostQuitMessage(0); break; default: /* Let Windows NT process any messages ** not specified in the preceding switch ** statement. */ return DefWindowProc(hwnd, message, wParam, lParam); } return 0; }