Операционные системы. Программирование в операционной среде Windows

89 HBRUSH hOldbrush; // дескриптор прежней кисти HPEN hRedpen, hBluepen; // дескрипторы перьев HPEN hOldpen; // дескриптор прежнего пера int maxX, maxY; // размеры экрана /* массивы точек - координаты вершин треугольников */ POINT mpl[3]={{150,50},{50,150},{150,150}};// 1-й треуг-к POINT mp2[3]={{250,150},{350,50},{450,150}};// 2-й треуг-к COLORREF со1ог= RGB(255,255,О); // цвет кисти ! -к * ! /* Функция окна */ ! -к * ! LRESULT CALLBACK WindowFunc (HWND hWnd, UINT message, WPARAM wParam, LPARAM 1Param) {HDC hdc; // контекст устройства окна PAINTSTRUCT paintstruct; // характеристики области перерисовки switch(message) { case WM_CREATE: /* получение размеров окна */ maxX = GetSystemMetrics (SM_CXSCREEN); maxY = GetSystemMetrics (SM_CYSCREEN); /* создание контекста устройства окна */ hdc = GetDC (hWnd); /* создание совместимого контекста устройства памяти */ memdc = CreateCompatibleDC (hdc); /* создание совместимого растра */ hbit = GreateCompatibleBitmap (hdc, maxX, maxY); /* выбор растрового изображения в контекст устройства памяти */ SelectObject (memdc, hbit); /* заполнение окна белой кистью */ PatBlt (memdc. О, О, тахХ, maxY, PATGOPY) ; /* создание красного и синего перьев */ hRedpen = GreatePen (PS_SOLID, 2, RGB (200, О, О)); hBluepen = GreatePen (PS_SOLID, 4, RGB (0,0,255)); /* освобождение контекста устройства окна */ ReleaseDG (hWnd, hdc); break; case WM_GOMMAND: // выбрана команда меню switch (wParam) { case ID_REGT: PatBlt (memdc, 0, 0, maxX, maxY, PATGOPY) ; hbrush = GreateSolidBrush (color); hOldbrush = (HBRUSH)SelectObject (memdc,hbrush ); hOldpen = (HPEN)SelectObject (memdc,hRedpen ); Rectangle (memdc, 50, 50, 200, 200) ; SelectObject (memdc, hBluepen); RoundRect (memdc, 250, 50, 400, 150, 30, 30); SelectObject (memdc, hOldpen); SelectObject (memdc, hOldbrush); DeleteObject (hbrush); Polygon(memdc,(GONST POINT *) 3,mpl); InvalidateRect (hWnd, NULL, 0); break;

RkJQdWJsaXNoZXIy MTY0OTYy