Similar presentations:
Создание проекта для графики
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);
//делаем кисть активной
4. Фон
RECT rect;//Определяем размер окна
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;
6. Получаем черный фон
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);