Слайд 1Создание проекта для графики
Слайд 2Создание проекта для графики
Найти функцию
LRESULT CALLBACK WndProc(HWND hWnd, UINT
message, WPARAM wParam, LPARAM lParam)
В ней пункт
case WM_PAINT:
hdc = BeginPaint(hWnd,
&ps);
Слайд 3Первый шаг
HBRUSH hBrush; //создаём кисть
hBrush = CreateSolidBrush(RGB(0,0,0));
//задаём сплошную кисть, закрашенную цветом RGB
SelectObject(hdc,
hBrush); //делаем кисть активной
//Определяем размер окна
GetClientRect(hWnd, &rect);
FillRect(hdc, &rect, hBrush); //Закрашиваем окно черным фоном
Слайд 5Как это выглядит суммарно
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
HBRUSH hBrush; //создаём
кисть
hBrush = CreateSolidBrush(RGB(0,0,0));
SelectObject(hdc, hBrush);
RECT rect;
GetClientRect(hWnd, &rect);
FillRect(hdc, &rect, hBrush);
EndPaint(hWnd, &ps);
break;
Слайд 7Изменения
Поиграясь со параметрами цветов в функции, задающей цвет кисти, получаем
другую заливку
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
HBRUSH hBrush; //создаём кисть
hBrush =
CreateSolidBrush(RGB(0,0,0));
SelectObject(hdc, hBrush);
RECT rect;
GetClientRect(hWnd, &rect);
FillRect(hdc, &rect, hBrush);
EndPaint(hWnd, &ps);
break;
Слайд 8Другой фон
hBrush = CreateSolidBrush(RGB(5, 150, 20));
Слайд 9Создание пера
HPEN blackpen;
blackpen = CreatePen(PS_SOLID, 2, RGB(0,0,0)); //Задаем перо толщиной
2 пикселя
SelectObject(hdc, blackpen );
//Выбираем перо
Слайд 10Нарисуем прямоугольник
Rectangle(hdc, 100, 100, 250, 170);
Первые 2 числа – левый
верхний угол, вторые два – правый нижний.
Слайд 11Закрашенный прямоугольник
Выбрав кисть и вызвав функцию отриосвки прямоугольника, получим закрашенный
прямоугольник
hBrush = CreateSolidBrush(RGB(120, 120, 120));
SelectObject(hdc, hBrush);
Rectangle(hdc, 100, 100, 250, 170);
Слайд 12Еще несколько прямоугольников
SelectObject(hdc, blackpen);
Rectangle(hdc, 120, 120, 190, 170);
Rectangle(hdc, 220, 120,
290, 170);
SelectObject(hdc, hBrush);
Rectangle(hdc, 70, 170, 340, 230);
hBrush = CreateSolidBrush(RGB(0, 0,
0));
SelectObject(hdc, hBrush);
Rectangle(hdc, 85, 185, 325, 215);
Слайд 13Отрисовка окружности
blackpen = CreatePen(PS_SOLID, 5, RGB(0, 0, 0));
SelectObject(hdc, blackpen);
Ellipse(hdc, 130,
130, 180, 170);
Слайд 14Закрашенная окружность
HBRUSH colouBrush;
colorBrush = CreateSolidBrush(RGB(255, 0, 0));
SelectObject(hdc, colorBrush);
Ellipse(hdc, 130, 130,
180, 170);
Слайд 15Еще окружность
blackpen = CreatePen(PS_SOLID, 5, RGB(0, 0, 0));
SelectObject(hdc, blackpen);
Ellipse(hdc, 220,
120, 290, 170);
colorBrush = CreateSolidBrush(RGB(255, 240, 0));
SelectObject(hdc, colorBrush);
Ellipse(hdc, 220, 120,
290, 170);
blackpen = CreatePen(PS_SOLID, 10, RGB(0, 0, 0));
SelectObject(hdc, blackpen);
Ellipse(hdc, 153, 148, 158, 153);
Ellipse(hdc, 250, 142, 258, 150);
Слайд 16И еще несколько
blackpen = CreatePen(PS_SOLID, 5, RGB(0, 0, 0));
SelectObject(hdc, blackpen);
Ellipse(hdc,
130, 20, 180, 100);
Ellipse(hdc, 230, 20, 280, 100);
Слайд 17Рисуем линии
MoveToEx(hdc, 145, 40, 0);
LineTo(hdc, 165, 40);
Перемещаемся в точку (функция
MoveToEx, первое и второе число) и рисуем линию до другой
точки (LineTo).
Слайд 18Еще линии
MoveToEx(hdc, 245, 40, 0);
LineTo(hdc, 265, 40);
MoveToEx(hdc, 155, 40, 0);
LineTo(hdc,
155, 80);
MoveToEx(hdc, 255, 40, 0);
LineTo(hdc, 255, 80);
MoveToEx(hdc, 165, 110, 0);
LineTo(hdc,
205, 130);
MoveToEx(hdc, 245, 110, 0);
LineTo(hdc, 205, 130);
MoveToEx(hdc, 205, 110, 0);
LineTo(hdc, 205, 130);
Слайд 19И последний штрих
blackpen = CreatePen(PS_SOLID, 2, RGB(0, 0, 0));
SelectObject(hdc, blackpen);
HBRUSH
whiteBrush, blackBrush;
whiteBrush = CreateSolidBrush(RGB(255, 255, 255));
SelectObject(hdc, whiteBrush);
Rectangle(hdc, 175, 185, 195,
205);
Rectangle(hdc, 215, 185, 235, 205);
blackBrush = CreateSolidBrush(RGB(0, 0, 0));
SelectObject(hdc, blackBrush);
Ellipse(hdc, 190, 160, 220, 180);