diff --git a/7 зан/7 зан.sln b/7 зан/7 зан.sln new file mode 100644 index 0000000..da872f5 --- /dev/null +++ b/7 зан/7 зан.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.11.35312.102 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "7 зан", "7 зан\7 зан.vcxproj", "{EEA3FF76-06FD-4575-AED3-09616BD11163}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {EEA3FF76-06FD-4575-AED3-09616BD11163}.Debug|x64.ActiveCfg = Debug|x64 + {EEA3FF76-06FD-4575-AED3-09616BD11163}.Debug|x64.Build.0 = Debug|x64 + {EEA3FF76-06FD-4575-AED3-09616BD11163}.Debug|x86.ActiveCfg = Debug|Win32 + {EEA3FF76-06FD-4575-AED3-09616BD11163}.Debug|x86.Build.0 = Debug|Win32 + {EEA3FF76-06FD-4575-AED3-09616BD11163}.Release|x64.ActiveCfg = Release|x64 + {EEA3FF76-06FD-4575-AED3-09616BD11163}.Release|x64.Build.0 = Release|x64 + {EEA3FF76-06FD-4575-AED3-09616BD11163}.Release|x86.ActiveCfg = Release|Win32 + {EEA3FF76-06FD-4575-AED3-09616BD11163}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {87C2BEF8-E2FD-47A0-819C-405951A0F418} + EndGlobalSection +EndGlobal diff --git a/7 зан/7 зан/7 зан.cpp b/7 зан/7 зан/7 зан.cpp new file mode 100644 index 0000000..81dfa42 --- /dev/null +++ b/7 зан/7 зан/7 зан.cpp @@ -0,0 +1,428 @@ +// 7 зан.cpp : Определяет точку входа для приложения. +// + +#include "framework.h" +#include "7 зан.h" + +#define MAX_LOADSTRING 100 + +// Глобальные переменные: +HINSTANCE hInst; // текущий экземпляр +WCHAR szTitle[MAX_LOADSTRING]; // Текст строки заголовка +WCHAR szWindowClass[MAX_LOADSTRING]; // имя класса главного окна +int numImage = 0; +// Отправить объявления функций, включенных в этот модуль кода: +ATOM MyRegisterClass(HINSTANCE hInstance); +BOOL InitInstance(HINSTANCE, int); +LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); +INT_PTR CALLBACK About(HWND, UINT, WPARAM, LPARAM); + +int APIENTRY wWinMain(_In_ HINSTANCE hInstance, + _In_opt_ HINSTANCE hPrevInstance, + _In_ LPWSTR lpCmdLine, + _In_ int nCmdShow) +{ + UNREFERENCED_PARAMETER(hPrevInstance); + UNREFERENCED_PARAMETER(lpCmdLine); + + // TODO: Разместите код здесь. + + // Инициализация глобальных строк + LoadStringW(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING); + LoadStringW(hInstance, IDC_MY7, szWindowClass, MAX_LOADSTRING); + MyRegisterClass(hInstance); + + // Выполнить инициализацию приложения: + if (!InitInstance (hInstance, nCmdShow)) + { + return FALSE; + } + + HACCEL hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_MY7)); + + MSG msg; + + // Цикл основного сообщения: + while (GetMessage(&msg, nullptr, 0, 0)) + { + if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) + { + TranslateMessage(&msg); + DispatchMessage(&msg); + } + } + + return (int) msg.wParam; +} + + + +// +// ФУНКЦИЯ: MyRegisterClass() +// +// ЦЕЛЬ: Регистрирует класс окна. +// +ATOM MyRegisterClass(HINSTANCE hInstance) +{ + WNDCLASSEXW wcex; + + wcex.cbSize = sizeof(WNDCLASSEX); + + wcex.style = CS_HREDRAW | CS_VREDRAW; + wcex.lpfnWndProc = WndProc; + wcex.cbClsExtra = 0; + wcex.cbWndExtra = 0; + wcex.hInstance = hInstance; + wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_MY7)); + wcex.hCursor = LoadCursor(nullptr, IDC_ARROW); + wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); + wcex.lpszMenuName = MAKEINTRESOURCEW(IDC_MY7); + wcex.lpszClassName = szWindowClass; + wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL)); + + return RegisterClassExW(&wcex); +} + +// +// ФУНКЦИЯ: InitInstance(HINSTANCE, int) +// +// ЦЕЛЬ: Сохраняет маркер экземпляра и создает главное окно +// +// КОММЕНТАРИИ: +// +// В этой функции маркер экземпляра сохраняется в глобальной переменной, а также +// создается и выводится главное окно программы. +// +BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) +{ + hInst = hInstance; // Сохранить маркер экземпляра в глобальной переменной + + HWND hWnd = CreateWindowW(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW, + CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, nullptr, nullptr, hInstance, nullptr); + + if (!hWnd) + { + return FALSE; + } + + ShowWindow(hWnd, nCmdShow); + UpdateWindow(hWnd); + + return TRUE; +} + +// +// ФУНКЦИЯ: WndProc(HWND, UINT, WPARAM, LPARAM) +// + +int num = 0; + +void Kyct(HDC hdc) { + //куст 2 + HPEN hPenMushroom1 = CreatePen(PS_SOLID, 3, RGB(34, 177, 76)); + SelectObject(hdc, hPenMushroom1); + int z1 = 0, v1 = 250; + int z2 = 100, v2 = 250; + do { + MoveToEx(hdc, z1, v1, NULL); + LineTo(hdc, z2, v2); + z1 += 25; + v1 -= 50; + } while (z1 <= 100); z1 = 100; + v1 = 50; + do { + MoveToEx(hdc, z1, v1, NULL); + LineTo(hdc, z2, v2); + z1 += 25; + v1 += 50; + } while (z1 <= 200); +} + +void Kyct(HDC hdc) { + //куст 2 + HPEN hPenMushroom1 = CreatePen(PS_SOLID, 3, RGB(34, 177, 76)); + SelectObject(hdc, hPenMushroom1); + int z1 = 0, v1 = 250; + int z2 = 100, v2 = 250; + do { + MoveToEx(hdc, z1, v1, NULL); + LineTo(hdc, z2, v2); + z1 += 25; + v1 -= 50; + } while (z1 <= 100); z1 = 100; + v1 = 50; + do { + MoveToEx(hdc, z1, v1, NULL); + LineTo(hdc, z2, v2); + z1 += 25; + v1 += 50; + } while (z1 <= 200); +} + +void D2(HDC hdc) { + // Квадрат + HBRUSH squareBrush = CreateSolidBrush(RGB(255, 255, 0)); // желтый цвет + SelectObject(hdc, squareBrush); + Rectangle(hdc, 600, 100, 750, 250); // новые координаты квадрата (сдвинуто вправо на 50) + + // Треугольник + MoveToEx(hdc, 675, 50, NULL); // верхняя точка треугольника (сдвинута вправо на 50) + LineTo(hdc, 600, 100); // левая точка (сдвинута вправо на 50) + LineTo(hdc, 750, 100); // правая точка (сдвинута вправо на 50) + LineTo(hdc, 675, 50); // закрываем треугольник (сдвинута вправо на 50) + +} + +void D1(HDC hdc) { + //Дом + + // Крыша + MoveToEx(hdc, 150, 350, NULL); // лево + LineTo(hdc, 300, 275); //центер + LineTo(hdc, 400, 350);// право + + // Дом + LineTo(hdc, 400, 525); + LineTo(hdc, 150, 525); + LineTo(hdc, 150, 350); + LineTo(hdc, 400, 350); + //Окна + MoveToEx(hdc, 225, 400, NULL); + LineTo(hdc, 225, 475); + LineTo(hdc, 325, 475); + LineTo(hdc, 325, 400); + LineTo(hdc, 225, 400); + + + // Рама + MoveToEx(hdc, 275, 400, NULL); + LineTo(hdc, 275, 475); + MoveToEx(hdc, 275, 425, NULL); + LineTo(hdc, 325, 425); +} +void M (HDC hdc) { + // Машина + HPEN hPen = CreatePen(PS_SOLID, 3, RGB(128, 0, 0)); + SelectObject(hdc, hPen); + + HBRUSH hBrush;// V + hBrush = CreateSolidBrush(RGB(255, 128, 67)); + + + SelectObject(hdc, hBrush); + Rectangle(hdc, 50, 200, 350, 250); + + + + MoveToEx(hdc, 100, 200, NULL); + LineTo(hdc, 150, 150); + LineTo(hdc, 250, 150); + LineTo(hdc, 300, 200); + + + + hPen = CreatePen(PS_SOLID, 7, RGB(0, 0, 128)); + SelectObject(hdc, hPen); + + + + hBrush = CreateSolidBrush(RGB(355, 128, 67)); + SelectObject(hdc, hBrush); + + Ellipse(hdc, 75, 225, 125, 275); // колесо + + Ellipse(hdc, 250, 225, 300, 275);// колесо +} + +void M2(HDC hdc) { + // Вторая машина + + Rectangle(hdc, 800, 50, 1100, 100); // Прямоугольник машины + + MoveToEx(hdc, 850, 50, NULL); + LineTo(hdc, 900, 0); // Верхняя часть машины + LineTo(hdc, 1000, 0); // Верхняя часть машины + LineTo(hdc, 1050, 50); // Переход вниз к нижней части машины + + // Обновление координат для колес + Ellipse(hdc, 825, 75, 875, 125); // Первое колесо + Ellipse(hdc, 975, 75, 1025, 125); // Второе колесо + + + + +} + + +void E(HDC hdc) { + //ель + + + + + + MoveToEx(hdc, 450, 525, NULL); + LineTo(hdc, 525, 450); + LineTo(hdc, 600, 525); + LineTo(hdc, 450, 525); + + MoveToEx(hdc, 475, 450, NULL); + LineTo(hdc, 575, 450); + LineTo(hdc, 525, 400); + LineTo(hdc, 475, 450); + + MoveToEx(hdc, 495, 400, NULL); + LineTo(hdc, 555, 400); + LineTo(hdc, 525, 365); + LineTo(hdc, 495, 400); +} + + +void E2(HDC hdc) { + // дерево 2 + // ствол + MoveToEx(hdc, 852, 243, NULL); + LineTo(hdc, 859, 691); + //ветка 1 + MoveToEx(hdc, 852, 443, NULL); + LineTo(hdc, 888, 331); + + //ветка 2 + MoveToEx(hdc, 852, 353, NULL); + LineTo(hdc, 800, 255); + + //ветка 2 + MoveToEx(hdc, 852, 300, NULL); + LineTo(hdc, 888, 205); + + //LineTo(hdc, 814, 535); + //MoveToEx(hdc, 814,535 , NULL); + //LineTo(hdc, 887,427 ); + //LineTo(hdc, 495, 400); + + //куст 1 + int x1 = 400, y1 = 150; + + int x2 = 500, y2 = 250; + + do { + MoveToEx(hdc, x1, y1, NULL); + LineTo(hdc, x2, y2); + x1 += 25; + } while (x1 <= 600); + + + Ellipse(hdc, 820, 170, 870, 220);// мяч +} + + + + + + + + + + +// ЦЕЛЬ: Обрабатывает сообщения в главном окне. +// +// WM_COMMAND - обработать меню приложения +// WM_PAINT - Отрисовка главного окна +// WM_DESTROY - отправить сообщение о выходе и вернуться +// +// +LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) +{ + switch (message) + { + case WM_COMMAND: + { + int wmId = LOWORD(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: + { + PAINTSTRUCT ps; + HDC hdc = BeginPaint(hWnd, &ps); + // TODO: Добавьте сюда любой код прорисовки, использующий HDC... + if (num == 0) + { + Kyct(hdc); + } + if (num == 1) + { + D2(hdc); + } + if (num == 2) + { + D1(hdc); + + } + if (num == 3) + { + M(hdc); + } + if (num == 4) + { + M2(hdc); + } + if (num == 5) + { + E(hdc); + } + if (num == 6) + { + E2(hdc); + } + + + EndPaint(hWnd, &ps); + } + break; + case WM_KEYDOWN: + num++; + if (num >= 8) num = 0; + InvalidateRect(hWnd, NULL, TRUE); + + break; + + case WM_DESTROY: + PostQuitMessage(0); + break; + default: + return DefWindowProc(hWnd, message, wParam, lParam); + } + return 0; +} + +// Обработчик сообщений для окна "О программе". +INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) +{ + UNREFERENCED_PARAMETER(lParam); + switch (message) + { + case WM_INITDIALOG: + return (INT_PTR)TRUE; + + case WM_COMMAND: + if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) + { + EndDialog(hDlg, LOWORD(wParam)); + return (INT_PTR)TRUE; + } + break; + } + return (INT_PTR)FALSE; +} diff --git a/7 зан/7 зан/7 зан.h b/7 зан/7 зан/7 зан.h new file mode 100644 index 0000000..b798bf5 --- /dev/null +++ b/7 зан/7 зан/7 зан.h @@ -0,0 +1,3 @@ +#pragma once + +#include "resource.h" diff --git a/7 зан/7 зан/7 зан.ico b/7 зан/7 зан/7 зан.ico new file mode 100644 index 0000000..b3ec03b Binary files /dev/null and b/7 зан/7 зан/7 зан.ico differ diff --git a/7 зан/7 зан/7 зан.rc b/7 зан/7 зан/7 зан.rc new file mode 100644 index 0000000..8e77e29 Binary files /dev/null and b/7 зан/7 зан/7 зан.rc differ diff --git a/7 зан/7 зан/7 зан.vcxproj b/7 зан/7 зан/7 зан.vcxproj new file mode 100644 index 0000000..14d60fb --- /dev/null +++ b/7 зан/7 зан/7 зан.vcxproj @@ -0,0 +1,148 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 17.0 + Win32Proj + {eea3ff76-06fd-4575-aed3-09616bd11163} + My7зан + 10.0 + + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + + + + + + + + + + + + + + + + + + + + Level3 + true + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + + + Windows + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + + + Windows + true + true + true + + + + + Level3 + true + _DEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + + + Windows + true + + + + + Level3 + true + true + true + NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + + + Windows + true + true + true + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/7 зан/7 зан/7 зан.vcxproj.filters b/7 зан/7 зан/7 зан.vcxproj.filters new file mode 100644 index 0000000..de9c695 --- /dev/null +++ b/7 зан/7 зан/7 зан.vcxproj.filters @@ -0,0 +1,49 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Файлы заголовков + + + Файлы заголовков + + + Файлы заголовков + + + Файлы заголовков + + + + + Исходные файлы + + + + + Файлы ресурсов + + + + + Файлы ресурсов + + + Файлы ресурсов + + + \ No newline at end of file diff --git a/7 зан/7 зан/Resource.h b/7 зан/7 зан/Resource.h new file mode 100644 index 0000000..900934d --- /dev/null +++ b/7 зан/7 зан/Resource.h @@ -0,0 +1,30 @@ +//{{NO_DEPENDENCIES}} +// Включаемый файл, созданный в Microsoft Visual C++. +// Используется 7 зан.rc + +#define IDS_APP_TITLE 103 + +#define IDR_MAINFRAME 128 +#define IDD_MY7_DIALOG 102 +#define IDD_ABOUTBOX 103 +#define IDM_ABOUT 104 +#define IDM_EXIT 105 +#define IDI_MY7 107 +#define IDI_SMALL 108 +#define IDC_MY7 109 +#define IDC_MYICON 2 +#ifndef IDC_STATIC +#define IDC_STATIC -1 +#endif +// Следующие стандартные значения для новых объектов +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS + +#define _APS_NO_MFC 130 +#define _APS_NEXT_RESOURCE_VALUE 129 +#define _APS_NEXT_COMMAND_VALUE 32771 +#define _APS_NEXT_CONTROL_VALUE 1000 +#define _APS_NEXT_SYMED_VALUE 110 +#endif +#endif diff --git a/7 зан/7 зан/framework.h b/7 зан/7 зан/framework.h new file mode 100644 index 0000000..a8f6dc8 --- /dev/null +++ b/7 зан/7 зан/framework.h @@ -0,0 +1,15 @@ +// header.h: включаемый файл для стандартных системных включаемых файлов +// или включаемые файлы для конкретного проекта +// + +#pragma once + +#include "targetver.h" +#define WIN32_LEAN_AND_MEAN // Исключите редко используемые компоненты из заголовков Windows +// Файлы заголовков Windows +#include +// Файлы заголовков среды выполнения C +#include +#include +#include +#include diff --git a/7 зан/7 зан/small.ico b/7 зан/7 зан/small.ico new file mode 100644 index 0000000..b3ec03b Binary files /dev/null and b/7 зан/7 зан/small.ico differ diff --git a/7 зан/7 зан/targetver.h b/7 зан/7 зан/targetver.h new file mode 100644 index 0000000..d90003d --- /dev/null +++ b/7 зан/7 зан/targetver.h @@ -0,0 +1,6 @@ +#pragma once + +// // При включении SDKDDKVer.h будет задана самая новая из доступных платформ Windows. +// Если вы планируете сборку приложения для предыдущей версии платформы Windows, включите WinSDKVer.h и +// задайте желаемую платформу в макросе _WIN32_WINNT, прежде чем включать SDKDDKVer.h. +#include