LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { int wmId, wmEvent,i; static int cxClient,cyClient; PAINTSTRUCT ps; HDC hdc; POINT apt[10]; static POINT aptFigure[10]={10,70, 50,70, 50,10, 90,10, 90,50, 30,50, 30,90, 70,90, 70,30, 10,30}; switch (message) { case WM_SIZE: cxClient=LOWORD(lParam); cyClient=HIWORD(lParam); break; case WM_COMMAND: wmId = LOWORD(wParam); wmEvent = HIWORD(wParam); // 分析菜单选择: switch (wmId) { case IDM_ABOUT: DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About); break; case IDM_EXIT: DestroyWindow(hWnd); break; default: return DefWindowProc(hWnd, message, wParam, lParam); } break; case WM_PAINT: hdc = BeginPaint(hWnd, &ps); SelectObject(hdc,GetStockObject(GRAY_BRUSH)); for(i=0;i<10;i++) { apt[i].x=cxClient*aptFigure[i].x/200; apt[i].y=cyClient*aptFigure[i].y/100; } SetPolyFillMode(hdc,ALTERNATE); Polygon(hdc,apt,10); for(i=0;i<10;i++) { apt[i].x+=cxClient/2; } SetPolyFillMode(hdc,WINDING); Polygon(hdc,apt,10); EndPaint(hWnd, &ps); break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hWnd, message, wParam, lParam); } return 0; }