Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2 курс / Лекции / Лекция 6.pptx
Скачиваний:
44
Добавлен:
18.02.2023
Размер:
216.36 Кб
Скачать

Функция рисования эллипса:

BOOL Ellipse(HDC hdc, // идентификатор контекста отображения int nxTL, // координата x верхнего левого угла

int nyTL, // координата y верхнего левого угла int nxBR, // координата x правого нижнего угла int nyBR ); // координата y правого нижнего угла

Функция рисования сегмента эллипса: BOOL Chord(

HDC hdc, // идентификатор контекста отображения int nxLeft, int nyTop, // верхий левый угол

int nxRight, int nyBottom, // правый нижний угол int nxStart, int nyStart, // начало дуги

int nxEnd, int nyEnd); // конец дуги

Функция рисования сектора эллипса: BOOL Pie(

HDC hdc, // идентификатор контекста отображения int nxLeft, int nyTop, // верхний левый угол

int nxRight, int nyBottom, // правый нижний угол int nxStart, int nyStart, // начало дуги

int nxEnd, int nyEnd); // конец дуги

Функция рисования полигона:

BOOL Polygon(

 

HDC hdc,

// идентификатор контекста отображения

const POINT FAR* lppt,// указатель на массив структур POINT int cPoints); // размер массива

Пример

Программа создает окно, в котором на синем фоне выводится красный текст «Привет!!!». Кроме того, на экран выводится черная прямоугольная рамка, внутри которой находится прямоугольник с цветным фоном и наклонной клетчатой штриховкой.

#include <windows.h>

LRESULT _stdcall WndProc(HWND hWnd, UINT massege, WPARAM wParam, LPARAM IParam);

BOOL regWin(HINSTANCE hInstance);

int regWin(HINSTANCE hInstance){ WNDCLASS wc;

wc.style = CS_OWNDC; wc.lpfnWndProc = WndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hInstance;

wc.hIcon = LoadIcon(NULL, IDI_APPLICATION); wc.hCursor = LoadCursor(NULL, IDC_ARROW); wc.hbrBackground = (HBRUSH)(6); wc.lpszMenuName = 0;

wc.lpszClassName = "class"; RegisterClass(&wc);

return 1;

}

LRESULT _stdcall WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)

{

switch (msg)

{

case WM_DESTROY: PostQuitMessage(0); return 0;

default:

return DefWindowProc(hWnd, msg, wParam, lParam);

}

}

int _stdcall WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {

regWin(hInstance);

HWND hWnd = CreateWindow("class", "GDI", WS_OVERLAPPEDWINDOW, 100, 100, 320, 340, NULL, NULL, hInstance, NULL);

ShowWindow(hWnd, nCmdShow); UpdateWindow(hWnd);

MSG msg;

HDC hDC = GetDC(hWnd); Rectangle(hDC, 50, 50, 250, 250);

HBRUSH brush = CreateHatchBrush(HS_DIAGCROSS, RGB(100,100,0)); SetBkColor(hDC,RGB(150,150,100));

RECT FllRct = {60,60,240,240}; FillRect(hDC,&FllRct,brush);

SetTextColor(hDC,RGB(255,0,0));

SetBkColor(hDC,RGB(0,0,255));

char str[] = "Привет!!!"; int len = sizeof(str) - 1; TextOut(hDC, 5, 5, str, len);

ReleaseDC(hWnd, hDC);

while(GetMessage(&msg, 0, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg);

}

return 0;}

Более подробно о рисовании в WinAPI:

http://www.frolov-lib.ru/books/bsp/v14/index.html