diff --git a/7, 8 лаб/7/1 лаб 7/1 лаб7.sln b/7, 8 лаб/7/1 лаб 7/1 лаб7.sln new file mode 100644 index 0000000..0bf6205 --- /dev/null +++ b/7, 8 лаб/7/1 лаб 7/1 лаб7.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.35130.168 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "1 лаб7", "1 лаб7\1 лаб7.vcxproj", "{691966D8-4D4F-4BC9-85A1-47F52D3F3605}" +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 + {691966D8-4D4F-4BC9-85A1-47F52D3F3605}.Debug|x64.ActiveCfg = Debug|x64 + {691966D8-4D4F-4BC9-85A1-47F52D3F3605}.Debug|x64.Build.0 = Debug|x64 + {691966D8-4D4F-4BC9-85A1-47F52D3F3605}.Debug|x86.ActiveCfg = Debug|Win32 + {691966D8-4D4F-4BC9-85A1-47F52D3F3605}.Debug|x86.Build.0 = Debug|Win32 + {691966D8-4D4F-4BC9-85A1-47F52D3F3605}.Release|x64.ActiveCfg = Release|x64 + {691966D8-4D4F-4BC9-85A1-47F52D3F3605}.Release|x64.Build.0 = Release|x64 + {691966D8-4D4F-4BC9-85A1-47F52D3F3605}.Release|x86.ActiveCfg = Release|Win32 + {691966D8-4D4F-4BC9-85A1-47F52D3F3605}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {582378A4-A4E9-4F79-9C00-5A45793B4257} + EndGlobalSection +EndGlobal diff --git a/7, 8 лаб/7/1 лаб 7/1 лаб7/1 лаб7.vcxproj b/7, 8 лаб/7/1 лаб 7/1 лаб7/1 лаб7.vcxproj new file mode 100644 index 0000000..d39a3b9 --- /dev/null +++ b/7, 8 лаб/7/1 лаб 7/1 лаб7/1 лаб7.vcxproj @@ -0,0 +1,147 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {691966d8-4d4f-4bc9-85a1-47f52d3f3605} + My1лаб7 + 10.0 + + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + + + false + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/7, 8 лаб/7/1 лаб 7/1 лаб7/1 лаб7.vcxproj.filters b/7, 8 лаб/7/1 лаб 7/1 лаб7/1 лаб7.vcxproj.filters new file mode 100644 index 0000000..ef66db6 --- /dev/null +++ b/7, 8 лаб/7/1 лаб 7/1 лаб7/1 лаб7.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {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, 8 лаб/7/1 лаб 7/1 лаб7/Source.cpp b/7, 8 лаб/7/1 лаб 7/1 лаб7/Source.cpp new file mode 100644 index 0000000..d245923 --- /dev/null +++ b/7, 8 лаб/7/1 лаб 7/1 лаб7/Source.cpp @@ -0,0 +1,20 @@ +#include +#include + +void aboutMe(){ + printf("\n"); + printf("\n"); + printf("\n"); + printf("\n"); + printf(": -11\n"); + printf(": 14.09.2024\n"); + printf(": \n"); + printf(" 1\n"); +} + +void main(){ + SetConsoleCP(1251); + SetConsoleOutputCP(1251); + + aboutMe(); +} \ No newline at end of file diff --git a/7, 8 лаб/7/2, 3, 4 лаб 7/2 лаб 7.sln b/7, 8 лаб/7/2, 3, 4 лаб 7/2 лаб 7.sln new file mode 100644 index 0000000..12ca764 --- /dev/null +++ b/7, 8 лаб/7/2, 3, 4 лаб 7/2 лаб 7.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.35130.168 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "2 лаб 7", "2 лаб 7\2 лаб 7.vcxproj", "{D1F52101-98D9-4A8B-9084-9D8B26AD0F0A}" +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 + {D1F52101-98D9-4A8B-9084-9D8B26AD0F0A}.Debug|x64.ActiveCfg = Debug|x64 + {D1F52101-98D9-4A8B-9084-9D8B26AD0F0A}.Debug|x64.Build.0 = Debug|x64 + {D1F52101-98D9-4A8B-9084-9D8B26AD0F0A}.Debug|x86.ActiveCfg = Debug|Win32 + {D1F52101-98D9-4A8B-9084-9D8B26AD0F0A}.Debug|x86.Build.0 = Debug|Win32 + {D1F52101-98D9-4A8B-9084-9D8B26AD0F0A}.Release|x64.ActiveCfg = Release|x64 + {D1F52101-98D9-4A8B-9084-9D8B26AD0F0A}.Release|x64.Build.0 = Release|x64 + {D1F52101-98D9-4A8B-9084-9D8B26AD0F0A}.Release|x86.ActiveCfg = Release|Win32 + {D1F52101-98D9-4A8B-9084-9D8B26AD0F0A}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {7E906FCA-D1B9-4E79-9063-CAFF0B4153E0} + EndGlobalSection +EndGlobal diff --git a/7, 8 лаб/7/2, 3, 4 лаб 7/2 лаб 7/2 лаб 7.cpp b/7, 8 лаб/7/2, 3, 4 лаб 7/2 лаб 7/2 лаб 7.cpp new file mode 100644 index 0000000..6cd7846 --- /dev/null +++ b/7, 8 лаб/7/2, 3, 4 лаб 7/2 лаб 7/2 лаб 7.cpp @@ -0,0 +1,266 @@ +// 2 лаб 7.cpp : Определяет точку входа для приложения. +// + +#include "framework.h" +#include "2 лаб 7.h" + +#define MAX_LOADSTRING 100 + +// Глобальные переменные: +HINSTANCE hInst; // текущий экземпляр +WCHAR szTitle[MAX_LOADSTRING]; // Текст строки заголовка +WCHAR szWindowClass[MAX_LOADSTRING]; // имя класса главного окна + +// Отправить объявления функций, включенных в этот модуль кода: +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_MY27, szWindowClass, MAX_LOADSTRING); + MyRegisterClass(hInstance); + + // Выполнить инициализацию приложения: + if (!InitInstance (hInstance, nCmdShow)) + { + return FALSE; + } + + HACCEL hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_MY27)); + + 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_MY27)); + wcex.hCursor = LoadCursor(nullptr, IDC_ARROW); + wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); + wcex.lpszMenuName = MAKEINTRESOURCEW(IDC_MY27); + 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) +// +// ЦЕЛЬ: Обрабатывает сообщения в главном окне. +// +// WM_COMMAND - обработать меню приложения +// WM_PAINT - Отрисовка главного окна +// WM_DESTROY - отправить сообщение о выходе и вернуться +// +// +//дом +void drawHome(HDC hdc) { + // Крыша + MoveToEx(hdc, 150, 350, NULL); + LineTo(hdc, 275, 250); + 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 drawCar(HDC hdc) { + HPEN hPen = CreatePen(PS_SOLID, 3, RGB(128, 0, 0)); + SelectObject(hdc, hPen); + + HBRUSH hBrush; + hBrush = CreateSolidBrush(RGB(255, 128, 67)); + SelectObject(hdc, hBrush); + + Rectangle(hdc, 50, 200, 300, 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 = CreateHatchBrush(HS_FDIAGONAL, RGB(255, 0, 0)); + SelectObject(hdc, hBrush); + + Ellipse(hdc, 75, 225, 125, 275); + + hPen = CreatePen(PS_SOLID, 7, RGB(0, 128, 0)); + SelectObject(hdc, hPen); + + hBrush = CreateHatchBrush(HS_BDIAGONAL, RGB(0, 128, 0)); + SelectObject(hdc, hBrush); + + Ellipse(hdc, 225, 225, 275, 275); +} +// Рисование дерева из ЛР7 +void drawTree(HDC hdc) { + HPEN hPen = CreatePen(PS_SOLID, 3, RGB(0, 200, 0)); + SelectObject(hdc, hPen); + + int x1 = 0, y1 = 250; + int x2 = 100, y2 = 250; + + do { + MoveToEx(hdc, x1, y1, NULL); + LineTo(hdc, x2, y2); + x1 += 5; + y1 -= 10; + } while (x1 <= 100); + + x1 = 100; + y1 = 50; + + do { + MoveToEx(hdc, x1, y1, NULL); + LineTo(hdc, x2, y2); + x1 += 5; + y1 += 10; + } while (x1 <= 200); +} +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... + drawHome(hdc); + drawCar(hdc); + drawTree(hdc); + EndPaint(hWnd, &ps); + } + 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, 8 лаб/7/2, 3, 4 лаб 7/2 лаб 7/2 лаб 7.h b/7, 8 лаб/7/2, 3, 4 лаб 7/2 лаб 7/2 лаб 7.h new file mode 100644 index 0000000..b798bf5 --- /dev/null +++ b/7, 8 лаб/7/2, 3, 4 лаб 7/2 лаб 7/2 лаб 7.h @@ -0,0 +1,3 @@ +#pragma once + +#include "resource.h" diff --git a/7, 8 лаб/7/2, 3, 4 лаб 7/2 лаб 7/2 лаб 7.ico b/7, 8 лаб/7/2, 3, 4 лаб 7/2 лаб 7/2 лаб 7.ico new file mode 100644 index 0000000..b3ec03b Binary files /dev/null and b/7, 8 лаб/7/2, 3, 4 лаб 7/2 лаб 7/2 лаб 7.ico differ diff --git a/7, 8 лаб/7/2, 3, 4 лаб 7/2 лаб 7/2 лаб 7.rc b/7, 8 лаб/7/2, 3, 4 лаб 7/2 лаб 7/2 лаб 7.rc new file mode 100644 index 0000000..3a2a17f Binary files /dev/null and b/7, 8 лаб/7/2, 3, 4 лаб 7/2 лаб 7/2 лаб 7.rc differ diff --git a/7, 8 лаб/7/2, 3, 4 лаб 7/2 лаб 7/2 лаб 7.vcxproj b/7, 8 лаб/7/2, 3, 4 лаб 7/2 лаб 7/2 лаб 7.vcxproj new file mode 100644 index 0000000..c2538cb --- /dev/null +++ b/7, 8 лаб/7/2, 3, 4 лаб 7/2 лаб 7/2 лаб 7.vcxproj @@ -0,0 +1,160 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {d1f52101-98d9-4a8b-9084-9d8b26ad0f0a} + My2лаб7 + 10.0 + + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + + + false + + + + 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, 8 лаб/7/2, 3, 4 лаб 7/2 лаб 7/2 лаб 7.vcxproj.filters b/7, 8 лаб/7/2, 3, 4 лаб 7/2 лаб 7/2 лаб 7.vcxproj.filters new file mode 100644 index 0000000..7e9b0c2 --- /dev/null +++ b/7, 8 лаб/7/2, 3, 4 лаб 7/2 лаб 7/2 лаб 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, 8 лаб/7/2, 3, 4 лаб 7/2 лаб 7/Resource.h b/7, 8 лаб/7/2, 3, 4 лаб 7/2 лаб 7/Resource.h new file mode 100644 index 0000000..bec604d --- /dev/null +++ b/7, 8 лаб/7/2, 3, 4 лаб 7/2 лаб 7/Resource.h @@ -0,0 +1,30 @@ +//{{NO_DEPENDENCIES}} +// Включаемый файл, созданный в Microsoft Visual C++. +// Используется 2 лаб 7.rc + +#define IDS_APP_TITLE 103 + +#define IDR_MAINFRAME 128 +#define IDD_MY27_DIALOG 102 +#define IDD_ABOUTBOX 103 +#define IDM_ABOUT 104 +#define IDM_EXIT 105 +#define IDI_MY27 107 +#define IDI_SMALL 108 +#define IDC_MY27 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, 8 лаб/7/2, 3, 4 лаб 7/2 лаб 7/framework.h b/7, 8 лаб/7/2, 3, 4 лаб 7/2 лаб 7/framework.h new file mode 100644 index 0000000..a8f6dc8 --- /dev/null +++ b/7, 8 лаб/7/2, 3, 4 лаб 7/2 лаб 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, 8 лаб/7/2, 3, 4 лаб 7/2 лаб 7/small.ico b/7, 8 лаб/7/2, 3, 4 лаб 7/2 лаб 7/small.ico new file mode 100644 index 0000000..b3ec03b Binary files /dev/null and b/7, 8 лаб/7/2, 3, 4 лаб 7/2 лаб 7/small.ico differ diff --git a/7, 8 лаб/7/2, 3, 4 лаб 7/2 лаб 7/targetver.h b/7, 8 лаб/7/2, 3, 4 лаб 7/2 лаб 7/targetver.h new file mode 100644 index 0000000..d90003d --- /dev/null +++ b/7, 8 лаб/7/2, 3, 4 лаб 7/2 лаб 7/targetver.h @@ -0,0 +1,6 @@ +#pragma once + +// // При включении SDKDDKVer.h будет задана самая новая из доступных платформ Windows. +// Если вы планируете сборку приложения для предыдущей версии платформы Windows, включите WinSDKVer.h и +// задайте желаемую платформу в макросе _WIN32_WINNT, прежде чем включать SDKDDKVer.h. +#include diff --git a/7, 8 лаб/7/5 лаб 7 2ч/5 лаб 2ч.sln b/7, 8 лаб/7/5 лаб 7 2ч/5 лаб 2ч.sln new file mode 100644 index 0000000..3610cd1 --- /dev/null +++ b/7, 8 лаб/7/5 лаб 7 2ч/5 лаб 2ч.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.35130.168 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "5 лаб 2ч", "5 лаб 2ч\5 лаб 2ч.vcxproj", "{9EFD2733-044A-4626-A221-53115CF92170}" +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 + {9EFD2733-044A-4626-A221-53115CF92170}.Debug|x64.ActiveCfg = Debug|x64 + {9EFD2733-044A-4626-A221-53115CF92170}.Debug|x64.Build.0 = Debug|x64 + {9EFD2733-044A-4626-A221-53115CF92170}.Debug|x86.ActiveCfg = Debug|Win32 + {9EFD2733-044A-4626-A221-53115CF92170}.Debug|x86.Build.0 = Debug|Win32 + {9EFD2733-044A-4626-A221-53115CF92170}.Release|x64.ActiveCfg = Release|x64 + {9EFD2733-044A-4626-A221-53115CF92170}.Release|x64.Build.0 = Release|x64 + {9EFD2733-044A-4626-A221-53115CF92170}.Release|x86.ActiveCfg = Release|Win32 + {9EFD2733-044A-4626-A221-53115CF92170}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {FB89A455-CA7F-4D32-8B45-4DAA3F651B97} + EndGlobalSection +EndGlobal diff --git a/7, 8 лаб/7/5 лаб 7 2ч/5 лаб 2ч/5 лаб 2ч.cpp b/7, 8 лаб/7/5 лаб 7 2ч/5 лаб 2ч/5 лаб 2ч.cpp new file mode 100644 index 0000000..6ca5431 --- /dev/null +++ b/7, 8 лаб/7/5 лаб 7 2ч/5 лаб 2ч/5 лаб 2ч.cpp @@ -0,0 +1,303 @@ +// 5 лаб 2ч.cpp : Определяет точку входа для приложения. +// + +#include "framework.h" +#include "5 лаб 2ч.h" + +#define MAX_LOADSTRING 100 + +// Глобальные переменные: +HINSTANCE hInst; // текущий экземпляр +WCHAR szTitle[MAX_LOADSTRING]; // Текст строки заголовка +WCHAR szWindowClass[MAX_LOADSTRING]; // имя класса главного окна + +// Отправить объявления функций, включенных в этот модуль кода: +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_MY52, szWindowClass, MAX_LOADSTRING); + MyRegisterClass(hInstance); + + // Выполнить инициализацию приложения: + if (!InitInstance (hInstance, nCmdShow)) + { + return FALSE; + } + + HACCEL hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_MY52)); + + 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_MY52)); + wcex.hCursor = LoadCursor(nullptr, IDC_ARROW); + wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); + wcex.lpszMenuName = MAKEINTRESOURCEW(IDC_MY52); + 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) +// +// ЦЕЛЬ: Обрабатывает сообщения в главном окне. +// +// WM_COMMAND - обработать меню приложения +// WM_PAINT - Отрисовка главного окна +// WM_DESTROY - отправить сообщение о выходе и вернуться +// +// +void drawHome(HDC hdc) { + // Крыша + MoveToEx(hdc, 150, 350, NULL); + LineTo(hdc, 275, 250); + 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); + + HPEN hPen = CreatePen(PS_SOLID, 3, RGB(0, 128, 0)); + SelectObject(hdc, hPen); + + //ЕЛКА + + // Нижний ярус + MoveToEx(hdc, 470, 525, NULL); + LineTo(hdc, 520, 475); + LineTo(hdc, 570, 525); + LineTo(hdc, 470, 525); + + // Средний ярус + MoveToEx(hdc, 490, 470, NULL); + LineTo(hdc, 520, 440); + LineTo(hdc, 550, 470); + LineTo(hdc, 490, 470); + + // Верхний ярус + MoveToEx(hdc, 500, 435, NULL); + LineTo(hdc, 520, 415); + LineTo(hdc, 540, 435); + LineTo(hdc, 500, 435); + + //Дерево + + hPen = CreatePen(PS_SOLID, 3, RGB(150, 75, 0)); + SelectObject(hdc, hPen); + + HBRUSH hBrush; + hBrush = CreateSolidBrush(RGB(150, 75, 0)); + SelectObject(hdc, hBrush); + + // Прямоугольник + Rectangle(hdc, 40, 530, 50, 450); + + + hPen = CreatePen(PS_SOLID, 3, RGB(0, 128, 0)); + SelectObject(hdc, hPen); + + hBrush; + hBrush = CreateSolidBrush(RGB(0, 128, 0)); + SelectObject(hdc, hBrush); + // Эллипс Кусты/Листья + Ellipse(hdc, 9, 420, 50, 450); + Ellipse(hdc, 40, 423, 80, 460); + Ellipse(hdc, 32, 370, 60, 440); + Ellipse(hdc, 5, 400, 40, 430); + Ellipse(hdc, 50, 400, 90, 430); + + // забор + hPen = CreatePen(PS_SOLID, 3, RGB(128, 0, 0)); + SelectObject(hdc, hPen); + + { + int x1 = 80, y1 = 435; + int x2 = 80, y2 = 520; + + do { + MoveToEx(hdc, x1, y1, NULL); + LineTo(hdc, x2, y2); + + x1 += 25; + x2 += 25; + } while (x1 <= 200); + + } + // горизонтальный забор + { + int x1 = 60, y1 = 460; + int x2 = 190, y2 = 460; + + do { + MoveToEx(hdc, x1, y1, NULL); + LineTo(hdc, x2, y2); + + y1 += 25; + y2 += 25; + } while (y2 <= 500); + + } + + // солнце + hBrush = CreateSolidBrush(RGB(255, 255, 255)); + SelectObject(hdc, hBrush); + + hPen = CreatePen(PS_SOLID, 3, RGB(255, 255, 0)); + SelectObject(hdc, hPen); + Ellipse(hdc, 425, 150, 505, 230); + // лучи + MoveToEx(hdc, 350, 190, NULL); + LineTo(hdc, 410, 180); + MoveToEx(hdc, 390, 245, NULL); + LineTo(hdc, 420, 210); + MoveToEx(hdc, 440, 280, NULL); + LineTo(hdc, 450, 240); +} +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... + drawHome(hdc); + + EndPaint(hWnd, &ps); + } + 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, 8 лаб/7/5 лаб 7 2ч/5 лаб 2ч/5 лаб 2ч.h b/7, 8 лаб/7/5 лаб 7 2ч/5 лаб 2ч/5 лаб 2ч.h new file mode 100644 index 0000000..b798bf5 --- /dev/null +++ b/7, 8 лаб/7/5 лаб 7 2ч/5 лаб 2ч/5 лаб 2ч.h @@ -0,0 +1,3 @@ +#pragma once + +#include "resource.h" diff --git a/7, 8 лаб/7/5 лаб 7 2ч/5 лаб 2ч/5 лаб 2ч.ico b/7, 8 лаб/7/5 лаб 7 2ч/5 лаб 2ч/5 лаб 2ч.ico new file mode 100644 index 0000000..b3ec03b Binary files /dev/null and b/7, 8 лаб/7/5 лаб 7 2ч/5 лаб 2ч/5 лаб 2ч.ico differ diff --git a/7, 8 лаб/7/5 лаб 7 2ч/5 лаб 2ч/5 лаб 2ч.rc b/7, 8 лаб/7/5 лаб 7 2ч/5 лаб 2ч/5 лаб 2ч.rc new file mode 100644 index 0000000..6e2f1f7 Binary files /dev/null and b/7, 8 лаб/7/5 лаб 7 2ч/5 лаб 2ч/5 лаб 2ч.rc differ diff --git a/7, 8 лаб/7/5 лаб 7 2ч/5 лаб 2ч/5 лаб 2ч.vcxproj b/7, 8 лаб/7/5 лаб 7 2ч/5 лаб 2ч/5 лаб 2ч.vcxproj new file mode 100644 index 0000000..2c7303f --- /dev/null +++ b/7, 8 лаб/7/5 лаб 7 2ч/5 лаб 2ч/5 лаб 2ч.vcxproj @@ -0,0 +1,160 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {9efd2733-044a-4626-a221-53115cf92170} + My5лаб2ч + 10.0 + + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + + + false + + + + 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, 8 лаб/7/5 лаб 7 2ч/5 лаб 2ч/5 лаб 2ч.vcxproj.filters b/7, 8 лаб/7/5 лаб 7 2ч/5 лаб 2ч/5 лаб 2ч.vcxproj.filters new file mode 100644 index 0000000..d22b9e7 --- /dev/null +++ b/7, 8 лаб/7/5 лаб 7 2ч/5 лаб 2ч/5 лаб 2ч.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, 8 лаб/7/5 лаб 7 2ч/5 лаб 2ч/Resource.h b/7, 8 лаб/7/5 лаб 7 2ч/5 лаб 2ч/Resource.h new file mode 100644 index 0000000..1e9b20f --- /dev/null +++ b/7, 8 лаб/7/5 лаб 7 2ч/5 лаб 2ч/Resource.h @@ -0,0 +1,30 @@ +//{{NO_DEPENDENCIES}} +// Включаемый файл, созданный в Microsoft Visual C++. +// Используется 5 лаб 2ч.rc + +#define IDS_APP_TITLE 103 + +#define IDR_MAINFRAME 128 +#define IDD_MY52_DIALOG 102 +#define IDD_ABOUTBOX 103 +#define IDM_ABOUT 104 +#define IDM_EXIT 105 +#define IDI_MY52 107 +#define IDI_SMALL 108 +#define IDC_MY52 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, 8 лаб/7/5 лаб 7 2ч/5 лаб 2ч/framework.h b/7, 8 лаб/7/5 лаб 7 2ч/5 лаб 2ч/framework.h new file mode 100644 index 0000000..a8f6dc8 --- /dev/null +++ b/7, 8 лаб/7/5 лаб 7 2ч/5 лаб 2ч/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, 8 лаб/7/5 лаб 7 2ч/5 лаб 2ч/small.ico b/7, 8 лаб/7/5 лаб 7 2ч/5 лаб 2ч/small.ico new file mode 100644 index 0000000..b3ec03b Binary files /dev/null and b/7, 8 лаб/7/5 лаб 7 2ч/5 лаб 2ч/small.ico differ diff --git a/7, 8 лаб/7/5 лаб 7 2ч/5 лаб 2ч/targetver.h b/7, 8 лаб/7/5 лаб 7 2ч/5 лаб 2ч/targetver.h new file mode 100644 index 0000000..d90003d --- /dev/null +++ b/7, 8 лаб/7/5 лаб 7 2ч/5 лаб 2ч/targetver.h @@ -0,0 +1,6 @@ +#pragma once + +// // При включении SDKDDKVer.h будет задана самая новая из доступных платформ Windows. +// Если вы планируете сборку приложения для предыдущей версии платформы Windows, включите WinSDKVer.h и +// задайте желаемую платформу в макросе _WIN32_WINNT, прежде чем включать SDKDDKVer.h. +#include diff --git a/7, 8 лаб/7/5 лаб 7/5 лаб 7.sln b/7, 8 лаб/7/5 лаб 7/5 лаб 7.sln new file mode 100644 index 0000000..bbc62b9 --- /dev/null +++ b/7, 8 лаб/7/5 лаб 7/5 лаб 7.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.35130.168 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "5 лаб 7", "5 лаб 7\5 лаб 7.vcxproj", "{C52EC074-865B-4739-BBBD-80A4FC0492CE}" +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 + {C52EC074-865B-4739-BBBD-80A4FC0492CE}.Debug|x64.ActiveCfg = Debug|x64 + {C52EC074-865B-4739-BBBD-80A4FC0492CE}.Debug|x64.Build.0 = Debug|x64 + {C52EC074-865B-4739-BBBD-80A4FC0492CE}.Debug|x86.ActiveCfg = Debug|Win32 + {C52EC074-865B-4739-BBBD-80A4FC0492CE}.Debug|x86.Build.0 = Debug|Win32 + {C52EC074-865B-4739-BBBD-80A4FC0492CE}.Release|x64.ActiveCfg = Release|x64 + {C52EC074-865B-4739-BBBD-80A4FC0492CE}.Release|x64.Build.0 = Release|x64 + {C52EC074-865B-4739-BBBD-80A4FC0492CE}.Release|x86.ActiveCfg = Release|Win32 + {C52EC074-865B-4739-BBBD-80A4FC0492CE}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {F2E3C3A7-3CD4-4576-B64B-F498413EECE5} + EndGlobalSection +EndGlobal diff --git a/7, 8 лаб/7/5 лаб 7/5 лаб 7/5 лаб 7.cpp b/7, 8 лаб/7/5 лаб 7/5 лаб 7/5 лаб 7.cpp new file mode 100644 index 0000000..5eb9cd4 --- /dev/null +++ b/7, 8 лаб/7/5 лаб 7/5 лаб 7/5 лаб 7.cpp @@ -0,0 +1,365 @@ +// 5 лаб 7.cpp : Определяет точку входа для приложения. +// + +#include "framework.h" +#include "5 лаб 7.h" + +#define MAX_LOADSTRING 100 + +// Глобальные переменные: +HINSTANCE hInst; // текущий экземпляр +WCHAR szTitle[MAX_LOADSTRING]; // Текст строки заголовка +WCHAR szWindowClass[MAX_LOADSTRING]; // имя класса главного окна + +// Отправить объявления функций, включенных в этот модуль кода: +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_MY57, szWindowClass, MAX_LOADSTRING); + MyRegisterClass(hInstance); + + // Выполнить инициализацию приложения: + if (!InitInstance (hInstance, nCmdShow)) + { + return FALSE; + } + + HACCEL hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_MY57)); + + 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_MY57)); + wcex.hCursor = LoadCursor(nullptr, IDC_ARROW); + wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); + wcex.lpszMenuName = MAKEINTRESOURCEW(IDC_MY57); + 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) +// +// ЦЕЛЬ: Обрабатывает сообщения в главном окне. +// +// WM_COMMAND - обработать меню приложения +// WM_PAINT - Отрисовка главного окна +// WM_DESTROY - отправить сообщение о выходе и вернуться +// +// +//лр 5 №2 +void drawTree2(HDC hdc) { + HPEN hPen = CreatePen(PS_SOLID, 3, RGB(0, 128, 0)); + SelectObject(hdc, hPen); + + //ЕЛКА + + // Нижний ярус + MoveToEx(hdc, 470, 525, NULL); + LineTo(hdc, 520, 475); + LineTo(hdc, 570, 525); + LineTo(hdc, 470, 525); + + // Средний ярус + MoveToEx(hdc, 490, 470, NULL); + LineTo(hdc, 520, 440); + LineTo(hdc, 550, 470); + LineTo(hdc, 490, 470); + + // Верхний ярус + MoveToEx(hdc, 500, 435, NULL); + LineTo(hdc, 520, 415); + LineTo(hdc, 540, 435); + LineTo(hdc, 500, 435); +} + +//лр 5 №5 +void drawTree3(HDC hdc) { + HPEN hPen = CreatePen(PS_SOLID, 3, RGB(150, 75, 0)); + SelectObject(hdc, hPen); + + + HBRUSH hBrush = CreateSolidBrush(RGB(150, 75, 0)); + SelectObject(hdc, hBrush); + + // Прямоугольник + Rectangle(hdc, 40, 530, 50, 450); + + + hPen = CreatePen(PS_SOLID, 3, RGB(0, 128, 0)); + SelectObject(hdc, hPen); + + + hBrush = CreateSolidBrush(RGB(0, 128, 0)); + SelectObject(hdc, hBrush); + // Эллипс Кусты/Листья + Ellipse(hdc, 9, 420, 50, 450); + Ellipse(hdc, 40, 423, 80, 460); + Ellipse(hdc, 32, 370, 60, 440); + Ellipse(hdc, 5, 400, 40, 430); + Ellipse(hdc, 50, 400, 90, 430); +} +//лр 5 №8 +void drawBus(HDC hdc) { + HPEN hPen = CreatePen(PS_SOLID, 2, RGB(128, 128, 128)); // Серый цвет + SelectObject(hdc, hPen); + + + // Кузов автобуса + HBRUSH hBrush = CreateSolidBrush(RGB(128, 128, 128)); + SelectObject(hdc, hBrush); + Rectangle(hdc, 100, 200, 400, 350); + + // Двери + hBrush = CreateSolidBrush(RGB(181, 184, 177)); // Ссветло-серый цвет + SelectObject(hdc, hBrush); + Rectangle(hdc, 265, 230, 313, 340); + Rectangle(hdc, 315, 230, 360, 340); + + //ручки двери + hBrush = CreateSolidBrush(RGB(150, 75, 0)); //коричневый цвет + SelectObject(hdc, hBrush); + + hPen = CreatePen(PS_SOLID, 2, RGB(150, 75, 0)); // коричневый цвет + SelectObject(hdc, hPen); + + Rectangle(hdc, 300, 270, 311, 290); + Rectangle(hdc, 315, 270, 325, 290); + + // Окна + + hBrush = CreateSolidBrush(RGB(0, 150, 255)); // Голубой цвет + SelectObject(hdc, hBrush); + hPen = CreatePen(PS_SOLID, 2, RGB(0, 150, 255)); // Голубой цвет + SelectObject(hdc, hPen); + + Rectangle(hdc, 115, 230, 150, 280); + Rectangle(hdc, 170, 230, 203, 280); + Rectangle(hdc, 215, 230, 250, 280); + Rectangle(hdc, 365, 230, 400, 280); + Rectangle(hdc, 275, 235, 305, 260); + Rectangle(hdc, 325, 235, 350, 260); + + + //фары + hBrush = CreateSolidBrush(RGB(255, 255, 139)); //желтый цвет + SelectObject(hdc, hBrush); + + hPen = CreatePen(PS_SOLID, 2, RGB(255, 255, 139)); // желтый цвет + SelectObject(hdc, hPen); + + Rectangle(hdc, 90, 290, 105, 320); + + // Колеса + hPen = CreatePen(PS_SOLID, 4, RGB(0, 0, 0)); + SelectObject(hdc, hPen); + hBrush = CreateSolidBrush(RGB(181, 184, 177)); + SelectObject(hdc, hBrush); + Ellipse(hdc, 135, 340, 170, 370); + Ellipse(hdc, 235, 340, 270, 370); + Ellipse(hdc, 365, 340, 400, 370); +} +//лр 6 № 1 +void drawKust(HDC hdc) { + HPEN hPen = CreatePen(PS_SOLID, 3, RGB(139, 0, 255)); + SelectObject(hdc, hPen); + 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); +} +//лр 6 №2 +void drawKust2(HDC hdc) { + HPEN hPen = CreatePen(PS_SOLID, 3, RGB(0, 0, 128)); + SelectObject(hdc, hPen); + + { + + int x1 = 0, y1 = 250; + int x2 = 100, y2 = 250; + + do { + MoveToEx(hdc, x1, y1, NULL); + LineTo(hdc, x2, y2); + + x1 += 25; + y1 -= 50; + } while (x1 <= 100); + + x1 = 100; + y1 = 50; + + do { + MoveToEx(hdc, x1, y1, NULL); + LineTo(hdc, x2, y2); + + x1 += 25; + y1 += 50; + } while (x1 <= 200); + + } +} + //лр 6 № 4 + void drawZabor(HDC hdc) { + HPEN hPen = CreatePen(PS_SOLID, 3, RGB(128, 0, 0)); + SelectObject(hdc, hPen); + + { + int x1 = 150, y1 = 0; + int x2 = 150, y2 = 100; + + do { + MoveToEx(hdc, x1, y1, NULL); + LineTo(hdc, x2, y2); + + x1 += 25; + x2 += 25; + } while (x1 <= 450); + + } + } + + +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... + drawTree2(hdc); + drawTree3(hdc); + drawBus(hdc); + drawKust(hdc); + drawKust2(hdc); + drawZabor(hdc); + + EndPaint(hWnd, &ps); + } + 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, 8 лаб/7/5 лаб 7/5 лаб 7/5 лаб 7.h b/7, 8 лаб/7/5 лаб 7/5 лаб 7/5 лаб 7.h new file mode 100644 index 0000000..b798bf5 --- /dev/null +++ b/7, 8 лаб/7/5 лаб 7/5 лаб 7/5 лаб 7.h @@ -0,0 +1,3 @@ +#pragma once + +#include "resource.h" diff --git a/7, 8 лаб/7/5 лаб 7/5 лаб 7/5 лаб 7.ico b/7, 8 лаб/7/5 лаб 7/5 лаб 7/5 лаб 7.ico new file mode 100644 index 0000000..b3ec03b Binary files /dev/null and b/7, 8 лаб/7/5 лаб 7/5 лаб 7/5 лаб 7.ico differ diff --git a/7, 8 лаб/7/5 лаб 7/5 лаб 7/5 лаб 7.rc b/7, 8 лаб/7/5 лаб 7/5 лаб 7/5 лаб 7.rc new file mode 100644 index 0000000..07bb9ee Binary files /dev/null and b/7, 8 лаб/7/5 лаб 7/5 лаб 7/5 лаб 7.rc differ diff --git a/7, 8 лаб/7/5 лаб 7/5 лаб 7/5 лаб 7.vcxproj b/7, 8 лаб/7/5 лаб 7/5 лаб 7/5 лаб 7.vcxproj new file mode 100644 index 0000000..16819a4 --- /dev/null +++ b/7, 8 лаб/7/5 лаб 7/5 лаб 7/5 лаб 7.vcxproj @@ -0,0 +1,160 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {c52ec074-865b-4739-bbbd-80a4fc0492ce} + My5лаб7 + 10.0 + + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + + + false + + + + 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, 8 лаб/7/5 лаб 7/5 лаб 7/5 лаб 7.vcxproj.filters b/7, 8 лаб/7/5 лаб 7/5 лаб 7/5 лаб 7.vcxproj.filters new file mode 100644 index 0000000..7ca4158 --- /dev/null +++ b/7, 8 лаб/7/5 лаб 7/5 лаб 7/5 лаб 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, 8 лаб/7/5 лаб 7/5 лаб 7/Resource.h b/7, 8 лаб/7/5 лаб 7/5 лаб 7/Resource.h new file mode 100644 index 0000000..36cadc2 --- /dev/null +++ b/7, 8 лаб/7/5 лаб 7/5 лаб 7/Resource.h @@ -0,0 +1,30 @@ +//{{NO_DEPENDENCIES}} +// Включаемый файл, созданный в Microsoft Visual C++. +// Используется 5 лаб 7.rc + +#define IDS_APP_TITLE 103 + +#define IDR_MAINFRAME 128 +#define IDD_MY57_DIALOG 102 +#define IDD_ABOUTBOX 103 +#define IDM_ABOUT 104 +#define IDM_EXIT 105 +#define IDI_MY57 107 +#define IDI_SMALL 108 +#define IDC_MY57 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, 8 лаб/7/5 лаб 7/5 лаб 7/framework.h b/7, 8 лаб/7/5 лаб 7/5 лаб 7/framework.h new file mode 100644 index 0000000..a8f6dc8 --- /dev/null +++ b/7, 8 лаб/7/5 лаб 7/5 лаб 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, 8 лаб/7/5 лаб 7/5 лаб 7/small.ico b/7, 8 лаб/7/5 лаб 7/5 лаб 7/small.ico new file mode 100644 index 0000000..b3ec03b Binary files /dev/null and b/7, 8 лаб/7/5 лаб 7/5 лаб 7/small.ico differ diff --git a/7, 8 лаб/7/5 лаб 7/5 лаб 7/targetver.h b/7, 8 лаб/7/5 лаб 7/5 лаб 7/targetver.h new file mode 100644 index 0000000..d90003d --- /dev/null +++ b/7, 8 лаб/7/5 лаб 7/5 лаб 7/targetver.h @@ -0,0 +1,6 @@ +#pragma once + +// // При включении SDKDDKVer.h будет задана самая новая из доступных платформ Windows. +// Если вы планируете сборку приложения для предыдущей версии платформы Windows, включите WinSDKVer.h и +// задайте желаемую платформу в макросе _WIN32_WINNT, прежде чем включать SDKDDKVer.h. +#include diff --git a/7, 8 лаб/8/1.1 лаб 8/1 лаб 8.sln b/7, 8 лаб/8/1.1 лаб 8/1 лаб 8.sln new file mode 100644 index 0000000..2969320 --- /dev/null +++ b/7, 8 лаб/8/1.1 лаб 8/1 лаб 8.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.11.35222.181 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "1 лаб 8", "1 лаб 8\1 лаб 8.vcxproj", "{F0DCCE54-A218-4C9C-83F6-B932B217BC45}" +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 + {F0DCCE54-A218-4C9C-83F6-B932B217BC45}.Debug|x64.ActiveCfg = Debug|x64 + {F0DCCE54-A218-4C9C-83F6-B932B217BC45}.Debug|x64.Build.0 = Debug|x64 + {F0DCCE54-A218-4C9C-83F6-B932B217BC45}.Debug|x86.ActiveCfg = Debug|Win32 + {F0DCCE54-A218-4C9C-83F6-B932B217BC45}.Debug|x86.Build.0 = Debug|Win32 + {F0DCCE54-A218-4C9C-83F6-B932B217BC45}.Release|x64.ActiveCfg = Release|x64 + {F0DCCE54-A218-4C9C-83F6-B932B217BC45}.Release|x64.Build.0 = Release|x64 + {F0DCCE54-A218-4C9C-83F6-B932B217BC45}.Release|x86.ActiveCfg = Release|Win32 + {F0DCCE54-A218-4C9C-83F6-B932B217BC45}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {D02A5949-453E-4EC2-B7AF-F22B35CF408F} + EndGlobalSection +EndGlobal diff --git a/7, 8 лаб/8/1.1 лаб 8/1 лаб 8/1 лаб 8.cpp b/7, 8 лаб/8/1.1 лаб 8/1 лаб 8/1 лаб 8.cpp new file mode 100644 index 0000000..51c3c77 --- /dev/null +++ b/7, 8 лаб/8/1.1 лаб 8/1 лаб 8/1 лаб 8.cpp @@ -0,0 +1,206 @@ +// 1 лаб 8.cpp : Определяет точку входа для приложения. +// + +#include "framework.h" +#include "1 лаб 8.h" + +#define MAX_LOADSTRING 100 + +// Глобальные переменные: +HINSTANCE hInst; // текущий экземпляр +WCHAR szTitle[MAX_LOADSTRING]; // Текст строки заголовка +WCHAR szWindowClass[MAX_LOADSTRING]; // имя класса главного окна + +// Отправить объявления функций, включенных в этот модуль кода: +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_MY18, szWindowClass, MAX_LOADSTRING); + MyRegisterClass(hInstance); + + // Выполнить инициализацию приложения: + if (!InitInstance (hInstance, nCmdShow)) + { + return FALSE; + } + + HACCEL hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_MY18)); + + 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_MY18)); + wcex.hCursor = LoadCursor(nullptr, IDC_ARROW); + wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); + wcex.lpszMenuName = MAKEINTRESOURCEW(IDC_MY18); + 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) +// +// ЦЕЛЬ: Обрабатывает сообщения в главном окне. +// +// WM_COMMAND - обработать меню приложения +// WM_PAINT - Отрисовка главного окна +// WM_DESTROY - отправить сообщение о выходе и вернуться +// +// +void StClausAuto(HDC hdc, int x, int y) { + // верхний треугольник + MoveToEx(hdc, 20 + x, 0 + y, NULL); + LineTo(hdc, 30 + x, 20 + y); + LineTo(hdc, 10 + x, 20 + y); + LineTo(hdc, 20 + x, 0 + y); + + // средний треугольник + MoveToEx(hdc, 20 + x, 10 + y, NULL); + LineTo(hdc, 30 + x, 40 + y); + LineTo(hdc, 10 + x, 40 + y); + LineTo(hdc, 20 + x, 10 + y); + + // нижний треугольник + MoveToEx(hdc, 20 + x, 30 + y, NULL); + LineTo(hdc, 40 + x, 80 + y); + LineTo(hdc, 0 + x, 80 + y); + LineTo(hdc, 20 + x, 30 + y); +} + +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... + StClausAuto(hdc, 0, 0); + StClausAuto(hdc, 200, 200); + StClausAuto(hdc, 100, 100); + StClausAuto(hdc, 0, 200); + StClausAuto(hdc, 200, 0); + + EndPaint(hWnd, &ps); + } + 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, 8 лаб/8/1.1 лаб 8/1 лаб 8/1 лаб 8.h b/7, 8 лаб/8/1.1 лаб 8/1 лаб 8/1 лаб 8.h new file mode 100644 index 0000000..b798bf5 --- /dev/null +++ b/7, 8 лаб/8/1.1 лаб 8/1 лаб 8/1 лаб 8.h @@ -0,0 +1,3 @@ +#pragma once + +#include "resource.h" diff --git a/7, 8 лаб/8/1.1 лаб 8/1 лаб 8/1 лаб 8.ico b/7, 8 лаб/8/1.1 лаб 8/1 лаб 8/1 лаб 8.ico new file mode 100644 index 0000000..b3ec03b Binary files /dev/null and b/7, 8 лаб/8/1.1 лаб 8/1 лаб 8/1 лаб 8.ico differ diff --git a/7, 8 лаб/8/1.1 лаб 8/1 лаб 8/1 лаб 8.rc b/7, 8 лаб/8/1.1 лаб 8/1 лаб 8/1 лаб 8.rc new file mode 100644 index 0000000..77529b2 Binary files /dev/null and b/7, 8 лаб/8/1.1 лаб 8/1 лаб 8/1 лаб 8.rc differ diff --git a/7, 8 лаб/8/1.1 лаб 8/1 лаб 8/1 лаб 8.vcxproj b/7, 8 лаб/8/1.1 лаб 8/1 лаб 8/1 лаб 8.vcxproj new file mode 100644 index 0000000..37a0c5f --- /dev/null +++ b/7, 8 лаб/8/1.1 лаб 8/1 лаб 8/1 лаб 8.vcxproj @@ -0,0 +1,148 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 17.0 + Win32Proj + {f0dcce54-a218-4c9c-83f6-b932b217bc45} + My1лаб8 + 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, 8 лаб/8/1.1 лаб 8/1 лаб 8/1 лаб 8.vcxproj.filters b/7, 8 лаб/8/1.1 лаб 8/1 лаб 8/1 лаб 8.vcxproj.filters new file mode 100644 index 0000000..d9889c0 --- /dev/null +++ b/7, 8 лаб/8/1.1 лаб 8/1 лаб 8/1 лаб 8.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, 8 лаб/8/1.1 лаб 8/1 лаб 8/Resource.h b/7, 8 лаб/8/1.1 лаб 8/1 лаб 8/Resource.h new file mode 100644 index 0000000..75310c6 --- /dev/null +++ b/7, 8 лаб/8/1.1 лаб 8/1 лаб 8/Resource.h @@ -0,0 +1,30 @@ +//{{NO_DEPENDENCIES}} +// Включаемый файл, созданный в Microsoft Visual C++. +// Используется 1 лаб 8.rc + +#define IDS_APP_TITLE 103 + +#define IDR_MAINFRAME 128 +#define IDD_MY18_DIALOG 102 +#define IDD_ABOUTBOX 103 +#define IDM_ABOUT 104 +#define IDM_EXIT 105 +#define IDI_MY18 107 +#define IDI_SMALL 108 +#define IDC_MY18 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, 8 лаб/8/1.1 лаб 8/1 лаб 8/framework.h b/7, 8 лаб/8/1.1 лаб 8/1 лаб 8/framework.h new file mode 100644 index 0000000..a8f6dc8 --- /dev/null +++ b/7, 8 лаб/8/1.1 лаб 8/1 лаб 8/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, 8 лаб/8/1.1 лаб 8/1 лаб 8/small.ico b/7, 8 лаб/8/1.1 лаб 8/1 лаб 8/small.ico new file mode 100644 index 0000000..b3ec03b Binary files /dev/null and b/7, 8 лаб/8/1.1 лаб 8/1 лаб 8/small.ico differ diff --git a/7, 8 лаб/8/1.1 лаб 8/1 лаб 8/targetver.h b/7, 8 лаб/8/1.1 лаб 8/1 лаб 8/targetver.h new file mode 100644 index 0000000..d90003d --- /dev/null +++ b/7, 8 лаб/8/1.1 лаб 8/1 лаб 8/targetver.h @@ -0,0 +1,6 @@ +#pragma once + +// // При включении SDKDDKVer.h будет задана самая новая из доступных платформ Windows. +// Если вы планируете сборку приложения для предыдущей версии платформы Windows, включите WinSDKVer.h и +// задайте желаемую платформу в макросе _WIN32_WINNT, прежде чем включать SDKDDKVer.h. +#include diff --git a/7, 8 лаб/8/1.2 лаб 8/1.2 лаб 8.sln b/7, 8 лаб/8/1.2 лаб 8/1.2 лаб 8.sln new file mode 100644 index 0000000..b1e8917 --- /dev/null +++ b/7, 8 лаб/8/1.2 лаб 8/1.2 лаб 8.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.11.35222.181 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "1.2 лаб 8", "1.2 лаб 8\1.2 лаб 8.vcxproj", "{B02C93C9-4899-4401-91DF-9C81FEB02801}" +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 + {B02C93C9-4899-4401-91DF-9C81FEB02801}.Debug|x64.ActiveCfg = Debug|x64 + {B02C93C9-4899-4401-91DF-9C81FEB02801}.Debug|x64.Build.0 = Debug|x64 + {B02C93C9-4899-4401-91DF-9C81FEB02801}.Debug|x86.ActiveCfg = Debug|Win32 + {B02C93C9-4899-4401-91DF-9C81FEB02801}.Debug|x86.Build.0 = Debug|Win32 + {B02C93C9-4899-4401-91DF-9C81FEB02801}.Release|x64.ActiveCfg = Release|x64 + {B02C93C9-4899-4401-91DF-9C81FEB02801}.Release|x64.Build.0 = Release|x64 + {B02C93C9-4899-4401-91DF-9C81FEB02801}.Release|x86.ActiveCfg = Release|Win32 + {B02C93C9-4899-4401-91DF-9C81FEB02801}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {7051F734-2BA2-4F9A-8780-8A6A0E615461} + EndGlobalSection +EndGlobal diff --git a/7, 8 лаб/8/1.2 лаб 8/1.2 лаб 8/1.2 лаб 8.cpp b/7, 8 лаб/8/1.2 лаб 8/1.2 лаб 8/1.2 лаб 8.cpp new file mode 100644 index 0000000..eeaaa99 --- /dev/null +++ b/7, 8 лаб/8/1.2 лаб 8/1.2 лаб 8/1.2 лаб 8.cpp @@ -0,0 +1,205 @@ +// 1.2 лаб 8.cpp : Определяет точку входа для приложения. +// + +#include "framework.h" +#include "1.2 лаб 8.h" + +#define MAX_LOADSTRING 100 + +// Глобальные переменные: +HINSTANCE hInst; // текущий экземпляр +WCHAR szTitle[MAX_LOADSTRING]; // Текст строки заголовка +WCHAR szWindowClass[MAX_LOADSTRING]; // имя класса главного окна + +// Отправить объявления функций, включенных в этот модуль кода: +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_MY128, szWindowClass, MAX_LOADSTRING); + MyRegisterClass(hInstance); + + // Выполнить инициализацию приложения: + if (!InitInstance (hInstance, nCmdShow)) + { + return FALSE; + } + + HACCEL hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_MY128)); + + 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_MY128)); + wcex.hCursor = LoadCursor(nullptr, IDC_ARROW); + wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); + wcex.lpszMenuName = MAKEINTRESOURCEW(IDC_MY128); + 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) +// +// ЦЕЛЬ: Обрабатывает сообщения в главном окне. +// +// WM_COMMAND - обработать меню приложения +// WM_PAINT - Отрисовка главного окна +// WM_DESTROY - отправить сообщение о выходе и вернуться +// +// +void StClausAuto(HDC hdc, int x, int y) { + // верхний треугольник + MoveToEx(hdc, 20 + x, 0 + y, NULL); + LineTo(hdc, 30 + x, 20 + y); + LineTo(hdc, 10 + x, 20 + y); + LineTo(hdc, 20 + x, 0 + y); + + // средний треугольник + MoveToEx(hdc, 20 + x, 10 + y, NULL); + LineTo(hdc, 30 + x, 40 + y); + LineTo(hdc, 10 + x, 40 + y); + LineTo(hdc, 20 + x, 10 + y); + + // нижний треугольник + MoveToEx(hdc, 20 + x, 30 + y, NULL); + LineTo(hdc, 40 + x, 80 + y); + LineTo(hdc, 0 + x, 80 + y); + LineTo(hdc, 20 + x, 30 + y); +} +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... + int x = 0; + do { + StClausAuto(hdc, x, 0); + x += 50; + } while (x < 400); + + EndPaint(hWnd, &ps); + } + 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, 8 лаб/8/1.2 лаб 8/1.2 лаб 8/1.2 лаб 8.h b/7, 8 лаб/8/1.2 лаб 8/1.2 лаб 8/1.2 лаб 8.h new file mode 100644 index 0000000..b798bf5 --- /dev/null +++ b/7, 8 лаб/8/1.2 лаб 8/1.2 лаб 8/1.2 лаб 8.h @@ -0,0 +1,3 @@ +#pragma once + +#include "resource.h" diff --git a/7, 8 лаб/8/1.2 лаб 8/1.2 лаб 8/1.2 лаб 8.ico b/7, 8 лаб/8/1.2 лаб 8/1.2 лаб 8/1.2 лаб 8.ico new file mode 100644 index 0000000..b3ec03b Binary files /dev/null and b/7, 8 лаб/8/1.2 лаб 8/1.2 лаб 8/1.2 лаб 8.ico differ diff --git a/7, 8 лаб/8/1.2 лаб 8/1.2 лаб 8/1.2 лаб 8.rc b/7, 8 лаб/8/1.2 лаб 8/1.2 лаб 8/1.2 лаб 8.rc new file mode 100644 index 0000000..e62e721 Binary files /dev/null and b/7, 8 лаб/8/1.2 лаб 8/1.2 лаб 8/1.2 лаб 8.rc differ diff --git a/7, 8 лаб/8/1.2 лаб 8/1.2 лаб 8/1.2 лаб 8.vcxproj b/7, 8 лаб/8/1.2 лаб 8/1.2 лаб 8/1.2 лаб 8.vcxproj new file mode 100644 index 0000000..5f442f3 --- /dev/null +++ b/7, 8 лаб/8/1.2 лаб 8/1.2 лаб 8/1.2 лаб 8.vcxproj @@ -0,0 +1,148 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 17.0 + Win32Proj + {b02c93c9-4899-4401-91df-9c81feb02801} + My12лаб8 + 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, 8 лаб/8/1.2 лаб 8/1.2 лаб 8/1.2 лаб 8.vcxproj.filters b/7, 8 лаб/8/1.2 лаб 8/1.2 лаб 8/1.2 лаб 8.vcxproj.filters new file mode 100644 index 0000000..55a3608 --- /dev/null +++ b/7, 8 лаб/8/1.2 лаб 8/1.2 лаб 8/1.2 лаб 8.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, 8 лаб/8/1.2 лаб 8/1.2 лаб 8/Resource.h b/7, 8 лаб/8/1.2 лаб 8/1.2 лаб 8/Resource.h new file mode 100644 index 0000000..306aef1 --- /dev/null +++ b/7, 8 лаб/8/1.2 лаб 8/1.2 лаб 8/Resource.h @@ -0,0 +1,30 @@ +//{{NO_DEPENDENCIES}} +// Включаемый файл, созданный в Microsoft Visual C++. +// Используется 1.2 лаб 8.rc + +#define IDS_APP_TITLE 103 + +#define IDR_MAINFRAME 128 +#define IDD_MY128_DIALOG 102 +#define IDD_ABOUTBOX 103 +#define IDM_ABOUT 104 +#define IDM_EXIT 105 +#define IDI_MY128 107 +#define IDI_SMALL 108 +#define IDC_MY128 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, 8 лаб/8/1.2 лаб 8/1.2 лаб 8/framework.h b/7, 8 лаб/8/1.2 лаб 8/1.2 лаб 8/framework.h new file mode 100644 index 0000000..a8f6dc8 --- /dev/null +++ b/7, 8 лаб/8/1.2 лаб 8/1.2 лаб 8/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, 8 лаб/8/1.2 лаб 8/1.2 лаб 8/small.ico b/7, 8 лаб/8/1.2 лаб 8/1.2 лаб 8/small.ico new file mode 100644 index 0000000..b3ec03b Binary files /dev/null and b/7, 8 лаб/8/1.2 лаб 8/1.2 лаб 8/small.ico differ diff --git a/7, 8 лаб/8/1.2 лаб 8/1.2 лаб 8/targetver.h b/7, 8 лаб/8/1.2 лаб 8/1.2 лаб 8/targetver.h new file mode 100644 index 0000000..d90003d --- /dev/null +++ b/7, 8 лаб/8/1.2 лаб 8/1.2 лаб 8/targetver.h @@ -0,0 +1,6 @@ +#pragma once + +// // При включении SDKDDKVer.h будет задана самая новая из доступных платформ Windows. +// Если вы планируете сборку приложения для предыдущей версии платформы Windows, включите WinSDKVer.h и +// задайте желаемую платформу в макросе _WIN32_WINNT, прежде чем включать SDKDDKVer.h. +#include diff --git a/7, 8 лаб/8/1.3 лаб 8/1.3 лаб 8.sln b/7, 8 лаб/8/1.3 лаб 8/1.3 лаб 8.sln new file mode 100644 index 0000000..939d785 --- /dev/null +++ b/7, 8 лаб/8/1.3 лаб 8/1.3 лаб 8.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.11.35222.181 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "1.3 лаб 8", "1.3 лаб 8\1.3 лаб 8.vcxproj", "{04B1B913-F6A7-4C94-8331-2CDBB371B3EE}" +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 + {04B1B913-F6A7-4C94-8331-2CDBB371B3EE}.Debug|x64.ActiveCfg = Debug|x64 + {04B1B913-F6A7-4C94-8331-2CDBB371B3EE}.Debug|x64.Build.0 = Debug|x64 + {04B1B913-F6A7-4C94-8331-2CDBB371B3EE}.Debug|x86.ActiveCfg = Debug|Win32 + {04B1B913-F6A7-4C94-8331-2CDBB371B3EE}.Debug|x86.Build.0 = Debug|Win32 + {04B1B913-F6A7-4C94-8331-2CDBB371B3EE}.Release|x64.ActiveCfg = Release|x64 + {04B1B913-F6A7-4C94-8331-2CDBB371B3EE}.Release|x64.Build.0 = Release|x64 + {04B1B913-F6A7-4C94-8331-2CDBB371B3EE}.Release|x86.ActiveCfg = Release|Win32 + {04B1B913-F6A7-4C94-8331-2CDBB371B3EE}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {9F237C29-7A8A-4B13-AD5B-88B665BA31B6} + EndGlobalSection +EndGlobal diff --git a/7, 8 лаб/8/1.3 лаб 8/1.3 лаб 8/1.3 лаб 8.cpp b/7, 8 лаб/8/1.3 лаб 8/1.3 лаб 8/1.3 лаб 8.cpp new file mode 100644 index 0000000..e75da7b --- /dev/null +++ b/7, 8 лаб/8/1.3 лаб 8/1.3 лаб 8/1.3 лаб 8.cpp @@ -0,0 +1,206 @@ +// 1.3 лаб 8.cpp : Определяет точку входа для приложения. +// + +#include "framework.h" +#include "1.3 лаб 8.h" + +#define MAX_LOADSTRING 100 + +// Глобальные переменные: +HINSTANCE hInst; // текущий экземпляр +WCHAR szTitle[MAX_LOADSTRING]; // Текст строки заголовка +WCHAR szWindowClass[MAX_LOADSTRING]; // имя класса главного окна + +// Отправить объявления функций, включенных в этот модуль кода: +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_MY138, szWindowClass, MAX_LOADSTRING); + MyRegisterClass(hInstance); + + // Выполнить инициализацию приложения: + if (!InitInstance (hInstance, nCmdShow)) + { + return FALSE; + } + + HACCEL hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_MY138)); + + 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_MY138)); + wcex.hCursor = LoadCursor(nullptr, IDC_ARROW); + wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); + wcex.lpszMenuName = MAKEINTRESOURCEW(IDC_MY138); + 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) +// +// ЦЕЛЬ: Обрабатывает сообщения в главном окне. +// +// WM_COMMAND - обработать меню приложения +// WM_PAINT - Отрисовка главного окна +// WM_DESTROY - отправить сообщение о выходе и вернуться +// +// +void StClausAuto(HDC hdc, int x, int y) { + // верхний треугольник + MoveToEx(hdc, 20 + x, 0 + y, NULL); + LineTo(hdc, 30 + x, 20 + y); + LineTo(hdc, 10 + x, 20 + y); + LineTo(hdc, 20 + x, 0 + y); + + // средний треугольник + MoveToEx(hdc, 20 + x, 10 + y, NULL); + LineTo(hdc, 30 + x, 40 + y); + LineTo(hdc, 10 + x, 40 + y); + LineTo(hdc, 20 + x, 10 + y); + + // нижний треугольник + MoveToEx(hdc, 20 + x, 30 + y, NULL); + LineTo(hdc, 40 + x, 80 + y); + LineTo(hdc, 0 + x, 80 + y); + LineTo(hdc, 20 + x, 30 + y); +} +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... + int y = 0; + do { + StClausAuto(hdc, 0, y); + y += 90; + } while (y < 300); + + + EndPaint(hWnd, &ps); + } + 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, 8 лаб/8/1.3 лаб 8/1.3 лаб 8/1.3 лаб 8.h b/7, 8 лаб/8/1.3 лаб 8/1.3 лаб 8/1.3 лаб 8.h new file mode 100644 index 0000000..b798bf5 --- /dev/null +++ b/7, 8 лаб/8/1.3 лаб 8/1.3 лаб 8/1.3 лаб 8.h @@ -0,0 +1,3 @@ +#pragma once + +#include "resource.h" diff --git a/7, 8 лаб/8/1.3 лаб 8/1.3 лаб 8/1.3 лаб 8.ico b/7, 8 лаб/8/1.3 лаб 8/1.3 лаб 8/1.3 лаб 8.ico new file mode 100644 index 0000000..b3ec03b Binary files /dev/null and b/7, 8 лаб/8/1.3 лаб 8/1.3 лаб 8/1.3 лаб 8.ico differ diff --git a/7, 8 лаб/8/1.3 лаб 8/1.3 лаб 8/1.3 лаб 8.rc b/7, 8 лаб/8/1.3 лаб 8/1.3 лаб 8/1.3 лаб 8.rc new file mode 100644 index 0000000..b1e7a1e Binary files /dev/null and b/7, 8 лаб/8/1.3 лаб 8/1.3 лаб 8/1.3 лаб 8.rc differ diff --git a/7, 8 лаб/8/1.3 лаб 8/1.3 лаб 8/1.3 лаб 8.vcxproj b/7, 8 лаб/8/1.3 лаб 8/1.3 лаб 8/1.3 лаб 8.vcxproj new file mode 100644 index 0000000..cb3b025 --- /dev/null +++ b/7, 8 лаб/8/1.3 лаб 8/1.3 лаб 8/1.3 лаб 8.vcxproj @@ -0,0 +1,148 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 17.0 + Win32Proj + {04b1b913-f6a7-4c94-8331-2cdbb371b3ee} + My13лаб8 + 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, 8 лаб/8/1.3 лаб 8/1.3 лаб 8/1.3 лаб 8.vcxproj.filters b/7, 8 лаб/8/1.3 лаб 8/1.3 лаб 8/1.3 лаб 8.vcxproj.filters new file mode 100644 index 0000000..9be56ae --- /dev/null +++ b/7, 8 лаб/8/1.3 лаб 8/1.3 лаб 8/1.3 лаб 8.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, 8 лаб/8/1.3 лаб 8/1.3 лаб 8/Resource.h b/7, 8 лаб/8/1.3 лаб 8/1.3 лаб 8/Resource.h new file mode 100644 index 0000000..6ca9f89 --- /dev/null +++ b/7, 8 лаб/8/1.3 лаб 8/1.3 лаб 8/Resource.h @@ -0,0 +1,30 @@ +//{{NO_DEPENDENCIES}} +// Включаемый файл, созданный в Microsoft Visual C++. +// Используется 1.3 лаб 8.rc + +#define IDS_APP_TITLE 103 + +#define IDR_MAINFRAME 128 +#define IDD_MY138_DIALOG 102 +#define IDD_ABOUTBOX 103 +#define IDM_ABOUT 104 +#define IDM_EXIT 105 +#define IDI_MY138 107 +#define IDI_SMALL 108 +#define IDC_MY138 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, 8 лаб/8/1.3 лаб 8/1.3 лаб 8/framework.h b/7, 8 лаб/8/1.3 лаб 8/1.3 лаб 8/framework.h new file mode 100644 index 0000000..a8f6dc8 --- /dev/null +++ b/7, 8 лаб/8/1.3 лаб 8/1.3 лаб 8/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, 8 лаб/8/1.3 лаб 8/1.3 лаб 8/small.ico b/7, 8 лаб/8/1.3 лаб 8/1.3 лаб 8/small.ico new file mode 100644 index 0000000..b3ec03b Binary files /dev/null and b/7, 8 лаб/8/1.3 лаб 8/1.3 лаб 8/small.ico differ diff --git a/7, 8 лаб/8/1.3 лаб 8/1.3 лаб 8/targetver.h b/7, 8 лаб/8/1.3 лаб 8/1.3 лаб 8/targetver.h new file mode 100644 index 0000000..d90003d --- /dev/null +++ b/7, 8 лаб/8/1.3 лаб 8/1.3 лаб 8/targetver.h @@ -0,0 +1,6 @@ +#pragma once + +// // При включении SDKDDKVer.h будет задана самая новая из доступных платформ Windows. +// Если вы планируете сборку приложения для предыдущей версии платформы Windows, включите WinSDKVer.h и +// задайте желаемую платформу в макросе _WIN32_WINNT, прежде чем включать SDKDDKVer.h. +#include diff --git a/7, 8 лаб/8/1.4 лаб 8/1.4 лаб 8.sln b/7, 8 лаб/8/1.4 лаб 8/1.4 лаб 8.sln new file mode 100644 index 0000000..98276af --- /dev/null +++ b/7, 8 лаб/8/1.4 лаб 8/1.4 лаб 8.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.11.35222.181 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "1.4 лаб 8", "1.4 лаб 8\1.4 лаб 8.vcxproj", "{24B7A290-4CA5-455E-A388-C676F31EAB5E}" +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 + {24B7A290-4CA5-455E-A388-C676F31EAB5E}.Debug|x64.ActiveCfg = Debug|x64 + {24B7A290-4CA5-455E-A388-C676F31EAB5E}.Debug|x64.Build.0 = Debug|x64 + {24B7A290-4CA5-455E-A388-C676F31EAB5E}.Debug|x86.ActiveCfg = Debug|Win32 + {24B7A290-4CA5-455E-A388-C676F31EAB5E}.Debug|x86.Build.0 = Debug|Win32 + {24B7A290-4CA5-455E-A388-C676F31EAB5E}.Release|x64.ActiveCfg = Release|x64 + {24B7A290-4CA5-455E-A388-C676F31EAB5E}.Release|x64.Build.0 = Release|x64 + {24B7A290-4CA5-455E-A388-C676F31EAB5E}.Release|x86.ActiveCfg = Release|Win32 + {24B7A290-4CA5-455E-A388-C676F31EAB5E}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {81EA6AD3-B1DB-4F0E-A09F-5CF10B0D833C} + EndGlobalSection +EndGlobal diff --git a/7, 8 лаб/8/1.4 лаб 8/1.4 лаб 8/1.4 лаб 8.cpp b/7, 8 лаб/8/1.4 лаб 8/1.4 лаб 8/1.4 лаб 8.cpp new file mode 100644 index 0000000..c2558eb --- /dev/null +++ b/7, 8 лаб/8/1.4 лаб 8/1.4 лаб 8/1.4 лаб 8.cpp @@ -0,0 +1,207 @@ +// 1.4 лаб 8.cpp : Определяет точку входа для приложения. +// + +#include "framework.h" +#include "1.4 лаб 8.h" + +#define MAX_LOADSTRING 100 + +// Глобальные переменные: +HINSTANCE hInst; // текущий экземпляр +WCHAR szTitle[MAX_LOADSTRING]; // Текст строки заголовка +WCHAR szWindowClass[MAX_LOADSTRING]; // имя класса главного окна + +// Отправить объявления функций, включенных в этот модуль кода: +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_MY148, szWindowClass, MAX_LOADSTRING); + MyRegisterClass(hInstance); + + // Выполнить инициализацию приложения: + if (!InitInstance (hInstance, nCmdShow)) + { + return FALSE; + } + + HACCEL hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_MY148)); + + 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_MY148)); + wcex.hCursor = LoadCursor(nullptr, IDC_ARROW); + wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); + wcex.lpszMenuName = MAKEINTRESOURCEW(IDC_MY148); + 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) +// +// ЦЕЛЬ: Обрабатывает сообщения в главном окне. +// +// WM_COMMAND - обработать меню приложения +// WM_PAINT - Отрисовка главного окна +// WM_DESTROY - отправить сообщение о выходе и вернуться +// +// +void StClausAuto(HDC hdc, int x, int y) { + // верхний треугольник + MoveToEx(hdc, 20 + x, 0 + y, NULL); + LineTo(hdc, 30 + x, 20 + y); + LineTo(hdc, 10 + x, 20 + y); + LineTo(hdc, 20 + x, 0 + y); + + // средний треугольник + MoveToEx(hdc, 20 + x, 10 + y, NULL); + LineTo(hdc, 30 + x, 40 + y); + LineTo(hdc, 10 + x, 40 + y); + LineTo(hdc, 20 + x, 10 + y); + + // нижний треугольник + MoveToEx(hdc, 20 + x, 30 + y, NULL); + LineTo(hdc, 40 + x, 80 + y); + LineTo(hdc, 0 + x, 80 + y); + LineTo(hdc, 20 + x, 30 + y); +} +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... + int y = 0; + int x = 0; + do { + StClausAuto(hdc, x, y); + y += 100; + x += 50; + } while ((x < 400) && (y <400)); + + EndPaint(hWnd, &ps); + } + 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, 8 лаб/8/1.4 лаб 8/1.4 лаб 8/1.4 лаб 8.h b/7, 8 лаб/8/1.4 лаб 8/1.4 лаб 8/1.4 лаб 8.h new file mode 100644 index 0000000..b798bf5 --- /dev/null +++ b/7, 8 лаб/8/1.4 лаб 8/1.4 лаб 8/1.4 лаб 8.h @@ -0,0 +1,3 @@ +#pragma once + +#include "resource.h" diff --git a/7, 8 лаб/8/1.4 лаб 8/1.4 лаб 8/1.4 лаб 8.ico b/7, 8 лаб/8/1.4 лаб 8/1.4 лаб 8/1.4 лаб 8.ico new file mode 100644 index 0000000..b3ec03b Binary files /dev/null and b/7, 8 лаб/8/1.4 лаб 8/1.4 лаб 8/1.4 лаб 8.ico differ diff --git a/7, 8 лаб/8/1.4 лаб 8/1.4 лаб 8/1.4 лаб 8.rc b/7, 8 лаб/8/1.4 лаб 8/1.4 лаб 8/1.4 лаб 8.rc new file mode 100644 index 0000000..c5f509c Binary files /dev/null and b/7, 8 лаб/8/1.4 лаб 8/1.4 лаб 8/1.4 лаб 8.rc differ diff --git a/7, 8 лаб/8/1.4 лаб 8/1.4 лаб 8/1.4 лаб 8.vcxproj b/7, 8 лаб/8/1.4 лаб 8/1.4 лаб 8/1.4 лаб 8.vcxproj new file mode 100644 index 0000000..5f7243a --- /dev/null +++ b/7, 8 лаб/8/1.4 лаб 8/1.4 лаб 8/1.4 лаб 8.vcxproj @@ -0,0 +1,148 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 17.0 + Win32Proj + {24b7a290-4ca5-455e-a388-c676f31eab5e} + My14лаб8 + 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, 8 лаб/8/1.4 лаб 8/1.4 лаб 8/1.4 лаб 8.vcxproj.filters b/7, 8 лаб/8/1.4 лаб 8/1.4 лаб 8/1.4 лаб 8.vcxproj.filters new file mode 100644 index 0000000..074ffb7 --- /dev/null +++ b/7, 8 лаб/8/1.4 лаб 8/1.4 лаб 8/1.4 лаб 8.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, 8 лаб/8/1.4 лаб 8/1.4 лаб 8/Resource.h b/7, 8 лаб/8/1.4 лаб 8/1.4 лаб 8/Resource.h new file mode 100644 index 0000000..ebbd8a9 --- /dev/null +++ b/7, 8 лаб/8/1.4 лаб 8/1.4 лаб 8/Resource.h @@ -0,0 +1,30 @@ +//{{NO_DEPENDENCIES}} +// Включаемый файл, созданный в Microsoft Visual C++. +// Используется 1.4 лаб 8.rc + +#define IDS_APP_TITLE 103 + +#define IDR_MAINFRAME 128 +#define IDD_MY148_DIALOG 102 +#define IDD_ABOUTBOX 103 +#define IDM_ABOUT 104 +#define IDM_EXIT 105 +#define IDI_MY148 107 +#define IDI_SMALL 108 +#define IDC_MY148 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, 8 лаб/8/1.4 лаб 8/1.4 лаб 8/framework.h b/7, 8 лаб/8/1.4 лаб 8/1.4 лаб 8/framework.h new file mode 100644 index 0000000..a8f6dc8 --- /dev/null +++ b/7, 8 лаб/8/1.4 лаб 8/1.4 лаб 8/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, 8 лаб/8/1.4 лаб 8/1.4 лаб 8/small.ico b/7, 8 лаб/8/1.4 лаб 8/1.4 лаб 8/small.ico new file mode 100644 index 0000000..b3ec03b Binary files /dev/null and b/7, 8 лаб/8/1.4 лаб 8/1.4 лаб 8/small.ico differ diff --git a/7, 8 лаб/8/1.4 лаб 8/1.4 лаб 8/targetver.h b/7, 8 лаб/8/1.4 лаб 8/1.4 лаб 8/targetver.h new file mode 100644 index 0000000..d90003d --- /dev/null +++ b/7, 8 лаб/8/1.4 лаб 8/1.4 лаб 8/targetver.h @@ -0,0 +1,6 @@ +#pragma once + +// // При включении SDKDDKVer.h будет задана самая новая из доступных платформ Windows. +// Если вы планируете сборку приложения для предыдущей версии платформы Windows, включите WinSDKVer.h и +// задайте желаемую платформу в макросе _WIN32_WINNT, прежде чем включать SDKDDKVer.h. +#include diff --git a/7, 8 лаб/8/2.1 лаб 8/2.1 лаб 8.sln b/7, 8 лаб/8/2.1 лаб 8/2.1 лаб 8.sln new file mode 100644 index 0000000..6422325 --- /dev/null +++ b/7, 8 лаб/8/2.1 лаб 8/2.1 лаб 8.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.11.35222.181 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "2.1 лаб 8", "2.1 лаб 8\2.1 лаб 8.vcxproj", "{0319BD61-0C16-458F-8504-A257ECBCDFA5}" +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 + {0319BD61-0C16-458F-8504-A257ECBCDFA5}.Debug|x64.ActiveCfg = Debug|x64 + {0319BD61-0C16-458F-8504-A257ECBCDFA5}.Debug|x64.Build.0 = Debug|x64 + {0319BD61-0C16-458F-8504-A257ECBCDFA5}.Debug|x86.ActiveCfg = Debug|Win32 + {0319BD61-0C16-458F-8504-A257ECBCDFA5}.Debug|x86.Build.0 = Debug|Win32 + {0319BD61-0C16-458F-8504-A257ECBCDFA5}.Release|x64.ActiveCfg = Release|x64 + {0319BD61-0C16-458F-8504-A257ECBCDFA5}.Release|x64.Build.0 = Release|x64 + {0319BD61-0C16-458F-8504-A257ECBCDFA5}.Release|x86.ActiveCfg = Release|Win32 + {0319BD61-0C16-458F-8504-A257ECBCDFA5}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {E6A0C30D-A0A5-4898-9876-2DD5216B1A52} + EndGlobalSection +EndGlobal diff --git a/7, 8 лаб/8/2.1 лаб 8/2.1 лаб 8/2.1 лаб 8.cpp b/7, 8 лаб/8/2.1 лаб 8/2.1 лаб 8/2.1 лаб 8.cpp new file mode 100644 index 0000000..4d03ab9 --- /dev/null +++ b/7, 8 лаб/8/2.1 лаб 8/2.1 лаб 8/2.1 лаб 8.cpp @@ -0,0 +1,204 @@ +// 2.1 лаб 8.cpp : Определяет точку входа для приложения. +// + +#include "framework.h" +#include "2.1 лаб 8.h" + +#define MAX_LOADSTRING 100 + +// Глобальные переменные: +HINSTANCE hInst; // текущий экземпляр +WCHAR szTitle[MAX_LOADSTRING]; // Текст строки заголовка +WCHAR szWindowClass[MAX_LOADSTRING]; // имя класса главного окна + +// Отправить объявления функций, включенных в этот модуль кода: +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_MY218, szWindowClass, MAX_LOADSTRING); + MyRegisterClass(hInstance); + + // Выполнить инициализацию приложения: + if (!InitInstance (hInstance, nCmdShow)) + { + return FALSE; + } + + HACCEL hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_MY218)); + + 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_MY218)); + wcex.hCursor = LoadCursor(nullptr, IDC_ARROW); + wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); + wcex.lpszMenuName = MAKEINTRESOURCEW(IDC_MY218); + 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) +// +// ЦЕЛЬ: Обрабатывает сообщения в главном окне. +// +// WM_COMMAND - обработать меню приложения +// WM_PAINT - Отрисовка главного окна +// WM_DESTROY - отправить сообщение о выходе и вернуться +// +// +void drawTruck(HDC hdc, int x, int y) { + HPEN hPen = CreatePen(PS_SOLID, 3, RGB(0, 0, 200)); + SelectObject(hdc, hPen); + + Rectangle(hdc, 0 + x, 30 + y, 40 + x, 50 + y); + Rectangle(hdc, 10 + x, 10 + y, 40 + x, 30 + y); + Rectangle(hdc, 40 + x, 0 + y, 100 + x, 50 + y); + + hPen = CreatePen(PS_SOLID, 3, RGB(100, 0, 0)); + SelectObject(hdc, hPen); + + Ellipse(hdc, 10 + x, 40 + y, 30 + x, 60 + y); + Ellipse(hdc, 70 + x, 40 + y, 90 + x, 60 + y); +} + +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... + + int y = 10; + int x = 50; + do { + drawTruck(hdc, x, y); + x += 150; + y += 150; + } while ((x < 300) && (y < 300)); + + EndPaint(hWnd, &ps); + } + 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, 8 лаб/8/2.1 лаб 8/2.1 лаб 8/2.1 лаб 8.h b/7, 8 лаб/8/2.1 лаб 8/2.1 лаб 8/2.1 лаб 8.h new file mode 100644 index 0000000..b798bf5 --- /dev/null +++ b/7, 8 лаб/8/2.1 лаб 8/2.1 лаб 8/2.1 лаб 8.h @@ -0,0 +1,3 @@ +#pragma once + +#include "resource.h" diff --git a/7, 8 лаб/8/2.1 лаб 8/2.1 лаб 8/2.1 лаб 8.ico b/7, 8 лаб/8/2.1 лаб 8/2.1 лаб 8/2.1 лаб 8.ico new file mode 100644 index 0000000..b3ec03b Binary files /dev/null and b/7, 8 лаб/8/2.1 лаб 8/2.1 лаб 8/2.1 лаб 8.ico differ diff --git a/7, 8 лаб/8/2.1 лаб 8/2.1 лаб 8/2.1 лаб 8.rc b/7, 8 лаб/8/2.1 лаб 8/2.1 лаб 8/2.1 лаб 8.rc new file mode 100644 index 0000000..b2943d9 Binary files /dev/null and b/7, 8 лаб/8/2.1 лаб 8/2.1 лаб 8/2.1 лаб 8.rc differ diff --git a/7, 8 лаб/8/2.1 лаб 8/2.1 лаб 8/2.1 лаб 8.vcxproj b/7, 8 лаб/8/2.1 лаб 8/2.1 лаб 8/2.1 лаб 8.vcxproj new file mode 100644 index 0000000..ccdb960 --- /dev/null +++ b/7, 8 лаб/8/2.1 лаб 8/2.1 лаб 8/2.1 лаб 8.vcxproj @@ -0,0 +1,148 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 17.0 + Win32Proj + {0319bd61-0c16-458f-8504-a257ecbcdfa5} + My21лаб8 + 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, 8 лаб/8/2.1 лаб 8/2.1 лаб 8/2.1 лаб 8.vcxproj.filters b/7, 8 лаб/8/2.1 лаб 8/2.1 лаб 8/2.1 лаб 8.vcxproj.filters new file mode 100644 index 0000000..a707c9e --- /dev/null +++ b/7, 8 лаб/8/2.1 лаб 8/2.1 лаб 8/2.1 лаб 8.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, 8 лаб/8/2.1 лаб 8/2.1 лаб 8/Resource.h b/7, 8 лаб/8/2.1 лаб 8/2.1 лаб 8/Resource.h new file mode 100644 index 0000000..e2d3757 --- /dev/null +++ b/7, 8 лаб/8/2.1 лаб 8/2.1 лаб 8/Resource.h @@ -0,0 +1,30 @@ +//{{NO_DEPENDENCIES}} +// Включаемый файл, созданный в Microsoft Visual C++. +// Используется 2.1 лаб 8.rc + +#define IDS_APP_TITLE 103 + +#define IDR_MAINFRAME 128 +#define IDD_MY218_DIALOG 102 +#define IDD_ABOUTBOX 103 +#define IDM_ABOUT 104 +#define IDM_EXIT 105 +#define IDI_MY218 107 +#define IDI_SMALL 108 +#define IDC_MY218 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, 8 лаб/8/2.1 лаб 8/2.1 лаб 8/framework.h b/7, 8 лаб/8/2.1 лаб 8/2.1 лаб 8/framework.h new file mode 100644 index 0000000..a8f6dc8 --- /dev/null +++ b/7, 8 лаб/8/2.1 лаб 8/2.1 лаб 8/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, 8 лаб/8/2.1 лаб 8/2.1 лаб 8/small.ico b/7, 8 лаб/8/2.1 лаб 8/2.1 лаб 8/small.ico new file mode 100644 index 0000000..b3ec03b Binary files /dev/null and b/7, 8 лаб/8/2.1 лаб 8/2.1 лаб 8/small.ico differ diff --git a/7, 8 лаб/8/2.1 лаб 8/2.1 лаб 8/targetver.h b/7, 8 лаб/8/2.1 лаб 8/2.1 лаб 8/targetver.h new file mode 100644 index 0000000..d90003d --- /dev/null +++ b/7, 8 лаб/8/2.1 лаб 8/2.1 лаб 8/targetver.h @@ -0,0 +1,6 @@ +#pragma once + +// // При включении SDKDDKVer.h будет задана самая новая из доступных платформ Windows. +// Если вы планируете сборку приложения для предыдущей версии платформы Windows, включите WinSDKVer.h и +// задайте желаемую платформу в макросе _WIN32_WINNT, прежде чем включать SDKDDKVer.h. +#include diff --git a/7, 8 лаб/8/2.2 лаб 8/2.2 лаб 8.sln b/7, 8 лаб/8/2.2 лаб 8/2.2 лаб 8.sln new file mode 100644 index 0000000..57dcb5d --- /dev/null +++ b/7, 8 лаб/8/2.2 лаб 8/2.2 лаб 8.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.11.35222.181 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "2.2 лаб 8", "2.2 лаб 8\2.2 лаб 8.vcxproj", "{E566A803-E25E-47A6-98B9-633E7B1FB9F2}" +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 + {E566A803-E25E-47A6-98B9-633E7B1FB9F2}.Debug|x64.ActiveCfg = Debug|x64 + {E566A803-E25E-47A6-98B9-633E7B1FB9F2}.Debug|x64.Build.0 = Debug|x64 + {E566A803-E25E-47A6-98B9-633E7B1FB9F2}.Debug|x86.ActiveCfg = Debug|Win32 + {E566A803-E25E-47A6-98B9-633E7B1FB9F2}.Debug|x86.Build.0 = Debug|Win32 + {E566A803-E25E-47A6-98B9-633E7B1FB9F2}.Release|x64.ActiveCfg = Release|x64 + {E566A803-E25E-47A6-98B9-633E7B1FB9F2}.Release|x64.Build.0 = Release|x64 + {E566A803-E25E-47A6-98B9-633E7B1FB9F2}.Release|x86.ActiveCfg = Release|Win32 + {E566A803-E25E-47A6-98B9-633E7B1FB9F2}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {56FECAC9-3528-4014-9ABD-39E7332C7CC2} + EndGlobalSection +EndGlobal diff --git a/7, 8 лаб/8/2.2 лаб 8/2.2 лаб 8/2.2 лаб 8.cpp b/7, 8 лаб/8/2.2 лаб 8/2.2 лаб 8/2.2 лаб 8.cpp new file mode 100644 index 0000000..4898341 --- /dev/null +++ b/7, 8 лаб/8/2.2 лаб 8/2.2 лаб 8/2.2 лаб 8.cpp @@ -0,0 +1,204 @@ +// 2.2 лаб 8.cpp : Определяет точку входа для приложения. +// + +#include "framework.h" +#include "2.2 лаб 8.h" + +#define MAX_LOADSTRING 100 + +// Глобальные переменные: +HINSTANCE hInst; // текущий экземпляр +WCHAR szTitle[MAX_LOADSTRING]; // Текст строки заголовка +WCHAR szWindowClass[MAX_LOADSTRING]; // имя класса главного окна + +// Отправить объявления функций, включенных в этот модуль кода: +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_MY228, szWindowClass, MAX_LOADSTRING); + MyRegisterClass(hInstance); + + // Выполнить инициализацию приложения: + if (!InitInstance (hInstance, nCmdShow)) + { + return FALSE; + } + + HACCEL hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_MY228)); + + 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_MY228)); + wcex.hCursor = LoadCursor(nullptr, IDC_ARROW); + wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); + wcex.lpszMenuName = MAKEINTRESOURCEW(IDC_MY228); + 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) +// +// ЦЕЛЬ: Обрабатывает сообщения в главном окне. +// +// WM_COMMAND - обработать меню приложения +// WM_PAINT - Отрисовка главного окна +// WM_DESTROY - отправить сообщение о выходе и вернуться +// +// +void drawTruck(HDC hdc, int x, int y) { + HPEN hPen = CreatePen(PS_SOLID, 3, RGB(0, 0, 200)); + SelectObject(hdc, hPen); + + Rectangle(hdc, 0 + x, 30 + y, 40 + x, 50 + y); + Rectangle(hdc, 10 + x, 10 + y, 40 + x, 30 + y); + Rectangle(hdc, 40 + x, 0 + y, 100 + x, 50 + y); + + hPen = CreatePen(PS_SOLID, 3, RGB(100, 0, 0)); + SelectObject(hdc, hPen); + + Ellipse(hdc, 10 + x, 40 + y, 30 + x, 60 + y); + Ellipse(hdc, 70 + x, 40 + y, 90 + x, 60 + y); +} +void drawTrucks1(HDC hdc) { + drawTruck(hdc, 10, 10); + drawTruck(hdc, 10, 310); + drawTruck(hdc, 310, 10); + drawTruck(hdc, 310, 310); + drawTruck(hdc, 160, 160); +} +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... + + drawTrucks1(hdc); + EndPaint(hWnd, &ps); + } + 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, 8 лаб/8/2.2 лаб 8/2.2 лаб 8/2.2 лаб 8.h b/7, 8 лаб/8/2.2 лаб 8/2.2 лаб 8/2.2 лаб 8.h new file mode 100644 index 0000000..b798bf5 --- /dev/null +++ b/7, 8 лаб/8/2.2 лаб 8/2.2 лаб 8/2.2 лаб 8.h @@ -0,0 +1,3 @@ +#pragma once + +#include "resource.h" diff --git a/7, 8 лаб/8/2.2 лаб 8/2.2 лаб 8/2.2 лаб 8.ico b/7, 8 лаб/8/2.2 лаб 8/2.2 лаб 8/2.2 лаб 8.ico new file mode 100644 index 0000000..b3ec03b Binary files /dev/null and b/7, 8 лаб/8/2.2 лаб 8/2.2 лаб 8/2.2 лаб 8.ico differ diff --git a/7, 8 лаб/8/2.2 лаб 8/2.2 лаб 8/2.2 лаб 8.rc b/7, 8 лаб/8/2.2 лаб 8/2.2 лаб 8/2.2 лаб 8.rc new file mode 100644 index 0000000..a1cab25 Binary files /dev/null and b/7, 8 лаб/8/2.2 лаб 8/2.2 лаб 8/2.2 лаб 8.rc differ diff --git a/7, 8 лаб/8/2.2 лаб 8/2.2 лаб 8/2.2 лаб 8.vcxproj b/7, 8 лаб/8/2.2 лаб 8/2.2 лаб 8/2.2 лаб 8.vcxproj new file mode 100644 index 0000000..bfe3008 --- /dev/null +++ b/7, 8 лаб/8/2.2 лаб 8/2.2 лаб 8/2.2 лаб 8.vcxproj @@ -0,0 +1,148 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 17.0 + Win32Proj + {e566a803-e25e-47a6-98b9-633e7b1fb9f2} + My22лаб8 + 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, 8 лаб/8/2.2 лаб 8/2.2 лаб 8/2.2 лаб 8.vcxproj.filters b/7, 8 лаб/8/2.2 лаб 8/2.2 лаб 8/2.2 лаб 8.vcxproj.filters new file mode 100644 index 0000000..860ac11 --- /dev/null +++ b/7, 8 лаб/8/2.2 лаб 8/2.2 лаб 8/2.2 лаб 8.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, 8 лаб/8/2.2 лаб 8/2.2 лаб 8/Resource.h b/7, 8 лаб/8/2.2 лаб 8/2.2 лаб 8/Resource.h new file mode 100644 index 0000000..f5f5b49 --- /dev/null +++ b/7, 8 лаб/8/2.2 лаб 8/2.2 лаб 8/Resource.h @@ -0,0 +1,30 @@ +//{{NO_DEPENDENCIES}} +// Включаемый файл, созданный в Microsoft Visual C++. +// Используется 2.2 лаб 8.rc + +#define IDS_APP_TITLE 103 + +#define IDR_MAINFRAME 128 +#define IDD_MY228_DIALOG 102 +#define IDD_ABOUTBOX 103 +#define IDM_ABOUT 104 +#define IDM_EXIT 105 +#define IDI_MY228 107 +#define IDI_SMALL 108 +#define IDC_MY228 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, 8 лаб/8/2.2 лаб 8/2.2 лаб 8/framework.h b/7, 8 лаб/8/2.2 лаб 8/2.2 лаб 8/framework.h new file mode 100644 index 0000000..a8f6dc8 --- /dev/null +++ b/7, 8 лаб/8/2.2 лаб 8/2.2 лаб 8/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, 8 лаб/8/2.2 лаб 8/2.2 лаб 8/small.ico b/7, 8 лаб/8/2.2 лаб 8/2.2 лаб 8/small.ico new file mode 100644 index 0000000..b3ec03b Binary files /dev/null and b/7, 8 лаб/8/2.2 лаб 8/2.2 лаб 8/small.ico differ diff --git a/7, 8 лаб/8/2.2 лаб 8/2.2 лаб 8/targetver.h b/7, 8 лаб/8/2.2 лаб 8/2.2 лаб 8/targetver.h new file mode 100644 index 0000000..d90003d --- /dev/null +++ b/7, 8 лаб/8/2.2 лаб 8/2.2 лаб 8/targetver.h @@ -0,0 +1,6 @@ +#pragma once + +// // При включении SDKDDKVer.h будет задана самая новая из доступных платформ Windows. +// Если вы планируете сборку приложения для предыдущей версии платформы Windows, включите WinSDKVer.h и +// задайте желаемую платформу в макросе _WIN32_WINNT, прежде чем включать SDKDDKVer.h. +#include diff --git a/7, 8 лаб/8/2.3.1 лаб 8/2.3 лаб 8.sln b/7, 8 лаб/8/2.3.1 лаб 8/2.3 лаб 8.sln new file mode 100644 index 0000000..d6503f5 --- /dev/null +++ b/7, 8 лаб/8/2.3.1 лаб 8/2.3 лаб 8.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.11.35222.181 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "2.3 лаб 8", "2.3 лаб 8\2.3 лаб 8.vcxproj", "{08DEEE99-3075-49E9-9523-098CBF99D446}" +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 + {08DEEE99-3075-49E9-9523-098CBF99D446}.Debug|x64.ActiveCfg = Debug|x64 + {08DEEE99-3075-49E9-9523-098CBF99D446}.Debug|x64.Build.0 = Debug|x64 + {08DEEE99-3075-49E9-9523-098CBF99D446}.Debug|x86.ActiveCfg = Debug|Win32 + {08DEEE99-3075-49E9-9523-098CBF99D446}.Debug|x86.Build.0 = Debug|Win32 + {08DEEE99-3075-49E9-9523-098CBF99D446}.Release|x64.ActiveCfg = Release|x64 + {08DEEE99-3075-49E9-9523-098CBF99D446}.Release|x64.Build.0 = Release|x64 + {08DEEE99-3075-49E9-9523-098CBF99D446}.Release|x86.ActiveCfg = Release|Win32 + {08DEEE99-3075-49E9-9523-098CBF99D446}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {651E2239-673E-40B1-BBC2-159ADEC105FC} + EndGlobalSection +EndGlobal diff --git a/7, 8 лаб/8/2.3.1 лаб 8/2.3 лаб 8/2.3 лаб 8.cpp b/7, 8 лаб/8/2.3.1 лаб 8/2.3 лаб 8/2.3 лаб 8.cpp new file mode 100644 index 0000000..642d594 --- /dev/null +++ b/7, 8 лаб/8/2.3.1 лаб 8/2.3 лаб 8/2.3 лаб 8.cpp @@ -0,0 +1,203 @@ +// 2.3 лаб 8.cpp : Определяет точку входа для приложения. +// + +#include "framework.h" +#include "2.3 лаб 8.h" + +#define MAX_LOADSTRING 100 + +// Глобальные переменные: +HINSTANCE hInst; // текущий экземпляр +WCHAR szTitle[MAX_LOADSTRING]; // Текст строки заголовка +WCHAR szWindowClass[MAX_LOADSTRING]; // имя класса главного окна + +// Отправить объявления функций, включенных в этот модуль кода: +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_MY238, szWindowClass, MAX_LOADSTRING); + MyRegisterClass(hInstance); + + // Выполнить инициализацию приложения: + if (!InitInstance (hInstance, nCmdShow)) + { + return FALSE; + } + + HACCEL hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_MY238)); + + 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_MY238)); + wcex.hCursor = LoadCursor(nullptr, IDC_ARROW); + wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); + wcex.lpszMenuName = MAKEINTRESOURCEW(IDC_MY238); + 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) +// +// ЦЕЛЬ: Обрабатывает сообщения в главном окне. +// +// WM_COMMAND - обработать меню приложения +// WM_PAINT - Отрисовка главного окна +// WM_DESTROY - отправить сообщение о выходе и вернуться +// +// +void drawTruck(HDC hdc, int x, int y) { + HPEN hPen = CreatePen(PS_SOLID, 3, RGB(0, 0, 200)); + SelectObject(hdc, hPen); + + Rectangle(hdc, 0 + x, 30 + y, 40 + x, 50 + y); + Rectangle(hdc, 10 + x, 10 + y, 40 + x, 30 + y); + Rectangle(hdc, 40 + x, 0 + y, 100 + x, 50 + y); + + hPen = CreatePen(PS_SOLID, 3, RGB(100, 0, 0)); + SelectObject(hdc, hPen); + + Ellipse(hdc, 10 + x, 40 + y, 30 + x, 60 + y); + Ellipse(hdc, 70 + x, 40 + y, 90 + x, 60 + y); +} +void drawTrucks2(HDC hdc) { + drawTruck(hdc, 20, 20); + drawTruck(hdc, 140, 20); + drawTruck(hdc, 260, 20); + drawTruck(hdc, 380, 20); + drawTruck(hdc, 500, 20); +} +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... + drawTrucks2(hdc); + + EndPaint(hWnd, &ps); + } + 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, 8 лаб/8/2.3.1 лаб 8/2.3 лаб 8/2.3 лаб 8.h b/7, 8 лаб/8/2.3.1 лаб 8/2.3 лаб 8/2.3 лаб 8.h new file mode 100644 index 0000000..b798bf5 --- /dev/null +++ b/7, 8 лаб/8/2.3.1 лаб 8/2.3 лаб 8/2.3 лаб 8.h @@ -0,0 +1,3 @@ +#pragma once + +#include "resource.h" diff --git a/7, 8 лаб/8/2.3.1 лаб 8/2.3 лаб 8/2.3 лаб 8.ico b/7, 8 лаб/8/2.3.1 лаб 8/2.3 лаб 8/2.3 лаб 8.ico new file mode 100644 index 0000000..b3ec03b Binary files /dev/null and b/7, 8 лаб/8/2.3.1 лаб 8/2.3 лаб 8/2.3 лаб 8.ico differ diff --git a/7, 8 лаб/8/2.3.1 лаб 8/2.3 лаб 8/2.3 лаб 8.rc b/7, 8 лаб/8/2.3.1 лаб 8/2.3 лаб 8/2.3 лаб 8.rc new file mode 100644 index 0000000..dafdbd6 Binary files /dev/null and b/7, 8 лаб/8/2.3.1 лаб 8/2.3 лаб 8/2.3 лаб 8.rc differ diff --git a/7, 8 лаб/8/2.3.1 лаб 8/2.3 лаб 8/2.3 лаб 8.vcxproj b/7, 8 лаб/8/2.3.1 лаб 8/2.3 лаб 8/2.3 лаб 8.vcxproj new file mode 100644 index 0000000..0771f3a --- /dev/null +++ b/7, 8 лаб/8/2.3.1 лаб 8/2.3 лаб 8/2.3 лаб 8.vcxproj @@ -0,0 +1,148 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 17.0 + Win32Proj + {08deee99-3075-49e9-9523-098cbf99d446} + My23лаб8 + 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, 8 лаб/8/2.3.1 лаб 8/2.3 лаб 8/2.3 лаб 8.vcxproj.filters b/7, 8 лаб/8/2.3.1 лаб 8/2.3 лаб 8/2.3 лаб 8.vcxproj.filters new file mode 100644 index 0000000..c4c8a9b --- /dev/null +++ b/7, 8 лаб/8/2.3.1 лаб 8/2.3 лаб 8/2.3 лаб 8.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, 8 лаб/8/2.3.1 лаб 8/2.3 лаб 8/Resource.h b/7, 8 лаб/8/2.3.1 лаб 8/2.3 лаб 8/Resource.h new file mode 100644 index 0000000..1100e1d --- /dev/null +++ b/7, 8 лаб/8/2.3.1 лаб 8/2.3 лаб 8/Resource.h @@ -0,0 +1,30 @@ +//{{NO_DEPENDENCIES}} +// Включаемый файл, созданный в Microsoft Visual C++. +// Используется 2.3 лаб 8.rc + +#define IDS_APP_TITLE 103 + +#define IDR_MAINFRAME 128 +#define IDD_MY238_DIALOG 102 +#define IDD_ABOUTBOX 103 +#define IDM_ABOUT 104 +#define IDM_EXIT 105 +#define IDI_MY238 107 +#define IDI_SMALL 108 +#define IDC_MY238 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, 8 лаб/8/2.3.1 лаб 8/2.3 лаб 8/framework.h b/7, 8 лаб/8/2.3.1 лаб 8/2.3 лаб 8/framework.h new file mode 100644 index 0000000..a8f6dc8 --- /dev/null +++ b/7, 8 лаб/8/2.3.1 лаб 8/2.3 лаб 8/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, 8 лаб/8/2.3.1 лаб 8/2.3 лаб 8/small.ico b/7, 8 лаб/8/2.3.1 лаб 8/2.3 лаб 8/small.ico new file mode 100644 index 0000000..b3ec03b Binary files /dev/null and b/7, 8 лаб/8/2.3.1 лаб 8/2.3 лаб 8/small.ico differ diff --git a/7, 8 лаб/8/2.3.1 лаб 8/2.3 лаб 8/targetver.h b/7, 8 лаб/8/2.3.1 лаб 8/2.3 лаб 8/targetver.h new file mode 100644 index 0000000..d90003d --- /dev/null +++ b/7, 8 лаб/8/2.3.1 лаб 8/2.3 лаб 8/targetver.h @@ -0,0 +1,6 @@ +#pragma once + +// // При включении SDKDDKVer.h будет задана самая новая из доступных платформ Windows. +// Если вы планируете сборку приложения для предыдущей версии платформы Windows, включите WinSDKVer.h и +// задайте желаемую платформу в макросе _WIN32_WINNT, прежде чем включать SDKDDKVer.h. +#include diff --git a/7, 8 лаб/8/2.3.2 лаб 8/2.3.2 лаб 8.sln b/7, 8 лаб/8/2.3.2 лаб 8/2.3.2 лаб 8.sln new file mode 100644 index 0000000..201d1ad --- /dev/null +++ b/7, 8 лаб/8/2.3.2 лаб 8/2.3.2 лаб 8.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.11.35222.181 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "2.3.2 лаб 8", "2.3.2 лаб 8\2.3.2 лаб 8.vcxproj", "{1F4BD7DA-70FE-41A4-A2A5-B57368CD088A}" +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 + {1F4BD7DA-70FE-41A4-A2A5-B57368CD088A}.Debug|x64.ActiveCfg = Debug|x64 + {1F4BD7DA-70FE-41A4-A2A5-B57368CD088A}.Debug|x64.Build.0 = Debug|x64 + {1F4BD7DA-70FE-41A4-A2A5-B57368CD088A}.Debug|x86.ActiveCfg = Debug|Win32 + {1F4BD7DA-70FE-41A4-A2A5-B57368CD088A}.Debug|x86.Build.0 = Debug|Win32 + {1F4BD7DA-70FE-41A4-A2A5-B57368CD088A}.Release|x64.ActiveCfg = Release|x64 + {1F4BD7DA-70FE-41A4-A2A5-B57368CD088A}.Release|x64.Build.0 = Release|x64 + {1F4BD7DA-70FE-41A4-A2A5-B57368CD088A}.Release|x86.ActiveCfg = Release|Win32 + {1F4BD7DA-70FE-41A4-A2A5-B57368CD088A}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {291A4D3D-D4E5-42E0-8EA1-2768DE4FD063} + EndGlobalSection +EndGlobal diff --git a/7, 8 лаб/8/2.3.2 лаб 8/2.3.2 лаб 8/2.3.2 лаб 8.cpp b/7, 8 лаб/8/2.3.2 лаб 8/2.3.2 лаб 8/2.3.2 лаб 8.cpp new file mode 100644 index 0000000..68963a1 --- /dev/null +++ b/7, 8 лаб/8/2.3.2 лаб 8/2.3.2 лаб 8/2.3.2 лаб 8.cpp @@ -0,0 +1,203 @@ +// 2.3.2 лаб 8.cpp : Определяет точку входа для приложения. +// + +#include "framework.h" +#include "2.3.2 лаб 8.h" + +#define MAX_LOADSTRING 100 + +// Глобальные переменные: +HINSTANCE hInst; // текущий экземпляр +WCHAR szTitle[MAX_LOADSTRING]; // Текст строки заголовка +WCHAR szWindowClass[MAX_LOADSTRING]; // имя класса главного окна + +// Отправить объявления функций, включенных в этот модуль кода: +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_MY2328, szWindowClass, MAX_LOADSTRING); + MyRegisterClass(hInstance); + + // Выполнить инициализацию приложения: + if (!InitInstance (hInstance, nCmdShow)) + { + return FALSE; + } + + HACCEL hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_MY2328)); + + 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_MY2328)); + wcex.hCursor = LoadCursor(nullptr, IDC_ARROW); + wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); + wcex.lpszMenuName = MAKEINTRESOURCEW(IDC_MY2328); + 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) +// +// ЦЕЛЬ: Обрабатывает сообщения в главном окне. +// +// WM_COMMAND - обработать меню приложения +// WM_PAINT - Отрисовка главного окна +// WM_DESTROY - отправить сообщение о выходе и вернуться +// +// +void drawTruck(HDC hdc, int x, int y) { + HPEN hPen = CreatePen(PS_SOLID, 3, RGB(0, 0, 200)); + SelectObject(hdc, hPen); + + Rectangle(hdc, 0 + x, 30 + y, 40 + x, 50 + y); + Rectangle(hdc, 10 + x, 10 + y, 40 + x, 30 + y); + Rectangle(hdc, 40 + x, 0 + y, 100 + x, 50 + y); + + hPen = CreatePen(PS_SOLID, 3, RGB(100, 0, 0)); + SelectObject(hdc, hPen); + + Ellipse(hdc, 10 + x, 40 + y, 30 + x, 60 + y); + Ellipse(hdc, 70 + x, 40 + y, 90 + x, 60 + y); +} +void drawTrucks3(HDC hdc) { + drawTruck(hdc, 20, 20); + drawTruck(hdc, 20, 100); + drawTruck(hdc, 20, 180); + drawTruck(hdc, 20, 260); + drawTruck(hdc, 20, 340); +} +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... + drawTrucks3(hdc); + + EndPaint(hWnd, &ps); + } + 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, 8 лаб/8/2.3.2 лаб 8/2.3.2 лаб 8/2.3.2 лаб 8.h b/7, 8 лаб/8/2.3.2 лаб 8/2.3.2 лаб 8/2.3.2 лаб 8.h new file mode 100644 index 0000000..b798bf5 --- /dev/null +++ b/7, 8 лаб/8/2.3.2 лаб 8/2.3.2 лаб 8/2.3.2 лаб 8.h @@ -0,0 +1,3 @@ +#pragma once + +#include "resource.h" diff --git a/7, 8 лаб/8/2.3.2 лаб 8/2.3.2 лаб 8/2.3.2 лаб 8.ico b/7, 8 лаб/8/2.3.2 лаб 8/2.3.2 лаб 8/2.3.2 лаб 8.ico new file mode 100644 index 0000000..b3ec03b Binary files /dev/null and b/7, 8 лаб/8/2.3.2 лаб 8/2.3.2 лаб 8/2.3.2 лаб 8.ico differ diff --git a/7, 8 лаб/8/2.3.2 лаб 8/2.3.2 лаб 8/2.3.2 лаб 8.rc b/7, 8 лаб/8/2.3.2 лаб 8/2.3.2 лаб 8/2.3.2 лаб 8.rc new file mode 100644 index 0000000..3408160 Binary files /dev/null and b/7, 8 лаб/8/2.3.2 лаб 8/2.3.2 лаб 8/2.3.2 лаб 8.rc differ diff --git a/7, 8 лаб/8/2.3.2 лаб 8/2.3.2 лаб 8/2.3.2 лаб 8.vcxproj b/7, 8 лаб/8/2.3.2 лаб 8/2.3.2 лаб 8/2.3.2 лаб 8.vcxproj new file mode 100644 index 0000000..f16d500 --- /dev/null +++ b/7, 8 лаб/8/2.3.2 лаб 8/2.3.2 лаб 8/2.3.2 лаб 8.vcxproj @@ -0,0 +1,148 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 17.0 + Win32Proj + {1f4bd7da-70fe-41a4-a2a5-b57368cd088a} + My232лаб8 + 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, 8 лаб/8/2.3.2 лаб 8/2.3.2 лаб 8/2.3.2 лаб 8.vcxproj.filters b/7, 8 лаб/8/2.3.2 лаб 8/2.3.2 лаб 8/2.3.2 лаб 8.vcxproj.filters new file mode 100644 index 0000000..01cfa5a --- /dev/null +++ b/7, 8 лаб/8/2.3.2 лаб 8/2.3.2 лаб 8/2.3.2 лаб 8.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, 8 лаб/8/2.3.2 лаб 8/2.3.2 лаб 8/Resource.h b/7, 8 лаб/8/2.3.2 лаб 8/2.3.2 лаб 8/Resource.h new file mode 100644 index 0000000..5acd38c --- /dev/null +++ b/7, 8 лаб/8/2.3.2 лаб 8/2.3.2 лаб 8/Resource.h @@ -0,0 +1,30 @@ +//{{NO_DEPENDENCIES}} +// Включаемый файл, созданный в Microsoft Visual C++. +// Используется 2.3.2 лаб 8.rc + +#define IDS_APP_TITLE 103 + +#define IDR_MAINFRAME 128 +#define IDD_MY2328_DIALOG 102 +#define IDD_ABOUTBOX 103 +#define IDM_ABOUT 104 +#define IDM_EXIT 105 +#define IDI_MY2328 107 +#define IDI_SMALL 108 +#define IDC_MY2328 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, 8 лаб/8/2.3.2 лаб 8/2.3.2 лаб 8/framework.h b/7, 8 лаб/8/2.3.2 лаб 8/2.3.2 лаб 8/framework.h new file mode 100644 index 0000000..a8f6dc8 --- /dev/null +++ b/7, 8 лаб/8/2.3.2 лаб 8/2.3.2 лаб 8/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, 8 лаб/8/2.3.2 лаб 8/2.3.2 лаб 8/small.ico b/7, 8 лаб/8/2.3.2 лаб 8/2.3.2 лаб 8/small.ico new file mode 100644 index 0000000..b3ec03b Binary files /dev/null and b/7, 8 лаб/8/2.3.2 лаб 8/2.3.2 лаб 8/small.ico differ diff --git a/7, 8 лаб/8/2.3.2 лаб 8/2.3.2 лаб 8/targetver.h b/7, 8 лаб/8/2.3.2 лаб 8/2.3.2 лаб 8/targetver.h new file mode 100644 index 0000000..d90003d --- /dev/null +++ b/7, 8 лаб/8/2.3.2 лаб 8/2.3.2 лаб 8/targetver.h @@ -0,0 +1,6 @@ +#pragma once + +// // При включении SDKDDKVer.h будет задана самая новая из доступных платформ Windows. +// Если вы планируете сборку приложения для предыдущей версии платформы Windows, включите WinSDKVer.h и +// задайте желаемую платформу в макросе _WIN32_WINNT, прежде чем включать SDKDDKVer.h. +#include diff --git a/7, 8 лаб/8/2.3.3 лаб 8/2.3.3 лаб 8.sln b/7, 8 лаб/8/2.3.3 лаб 8/2.3.3 лаб 8.sln new file mode 100644 index 0000000..79326a5 --- /dev/null +++ b/7, 8 лаб/8/2.3.3 лаб 8/2.3.3 лаб 8.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.11.35222.181 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "2.3.3 лаб 8", "2.3.3 лаб 8\2.3.3 лаб 8.vcxproj", "{F993CF93-F7A4-4C80-A838-CB00F0C6C406}" +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 + {F993CF93-F7A4-4C80-A838-CB00F0C6C406}.Debug|x64.ActiveCfg = Debug|x64 + {F993CF93-F7A4-4C80-A838-CB00F0C6C406}.Debug|x64.Build.0 = Debug|x64 + {F993CF93-F7A4-4C80-A838-CB00F0C6C406}.Debug|x86.ActiveCfg = Debug|Win32 + {F993CF93-F7A4-4C80-A838-CB00F0C6C406}.Debug|x86.Build.0 = Debug|Win32 + {F993CF93-F7A4-4C80-A838-CB00F0C6C406}.Release|x64.ActiveCfg = Release|x64 + {F993CF93-F7A4-4C80-A838-CB00F0C6C406}.Release|x64.Build.0 = Release|x64 + {F993CF93-F7A4-4C80-A838-CB00F0C6C406}.Release|x86.ActiveCfg = Release|Win32 + {F993CF93-F7A4-4C80-A838-CB00F0C6C406}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {B26470D5-6C1F-4342-A42A-AFF5BBE7C471} + EndGlobalSection +EndGlobal diff --git a/7, 8 лаб/8/2.3.3 лаб 8/2.3.3 лаб 8/2.3.3 лаб 8.cpp b/7, 8 лаб/8/2.3.3 лаб 8/2.3.3 лаб 8/2.3.3 лаб 8.cpp new file mode 100644 index 0000000..288dd07 --- /dev/null +++ b/7, 8 лаб/8/2.3.3 лаб 8/2.3.3 лаб 8/2.3.3 лаб 8.cpp @@ -0,0 +1,203 @@ +// 2.3.3 лаб 8.cpp : Определяет точку входа для приложения. +// + +#include "framework.h" +#include "2.3.3 лаб 8.h" + +#define MAX_LOADSTRING 100 + +// Глобальные переменные: +HINSTANCE hInst; // текущий экземпляр +WCHAR szTitle[MAX_LOADSTRING]; // Текст строки заголовка +WCHAR szWindowClass[MAX_LOADSTRING]; // имя класса главного окна + +// Отправить объявления функций, включенных в этот модуль кода: +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_MY2338, szWindowClass, MAX_LOADSTRING); + MyRegisterClass(hInstance); + + // Выполнить инициализацию приложения: + if (!InitInstance (hInstance, nCmdShow)) + { + return FALSE; + } + + HACCEL hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_MY2338)); + + 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_MY2338)); + wcex.hCursor = LoadCursor(nullptr, IDC_ARROW); + wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); + wcex.lpszMenuName = MAKEINTRESOURCEW(IDC_MY2338); + 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) +// +// ЦЕЛЬ: Обрабатывает сообщения в главном окне. +// +// WM_COMMAND - обработать меню приложения +// WM_PAINT - Отрисовка главного окна +// WM_DESTROY - отправить сообщение о выходе и вернуться +// +// +void drawTruck(HDC hdc, int x, int y) { + HPEN hPen = CreatePen(PS_SOLID, 3, RGB(0, 0, 200)); + SelectObject(hdc, hPen); + + Rectangle(hdc, 0 + x, 30 + y, 40 + x, 50 + y); + Rectangle(hdc, 10 + x, 10 + y, 40 + x, 30 + y); + Rectangle(hdc, 40 + x, 0 + y, 100 + x, 50 + y); + + hPen = CreatePen(PS_SOLID, 3, RGB(100, 0, 0)); + SelectObject(hdc, hPen); + + Ellipse(hdc, 10 + x, 40 + y, 30 + x, 60 + y); + Ellipse(hdc, 70 + x, 40 + y, 90 + x, 60 + y); +} +void drawTrucks4(HDC hdc) { + drawTruck(hdc, 20, 20); + drawTruck(hdc, 150, 100); + drawTruck(hdc, 270, 185); + drawTruck(hdc, 390, 270); + drawTruck(hdc, 510, 350); +} +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... + drawTrucks4(hdc); + + EndPaint(hWnd, &ps); + } + 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, 8 лаб/8/2.3.3 лаб 8/2.3.3 лаб 8/2.3.3 лаб 8.h b/7, 8 лаб/8/2.3.3 лаб 8/2.3.3 лаб 8/2.3.3 лаб 8.h new file mode 100644 index 0000000..b798bf5 --- /dev/null +++ b/7, 8 лаб/8/2.3.3 лаб 8/2.3.3 лаб 8/2.3.3 лаб 8.h @@ -0,0 +1,3 @@ +#pragma once + +#include "resource.h" diff --git a/7, 8 лаб/8/2.3.3 лаб 8/2.3.3 лаб 8/2.3.3 лаб 8.ico b/7, 8 лаб/8/2.3.3 лаб 8/2.3.3 лаб 8/2.3.3 лаб 8.ico new file mode 100644 index 0000000..b3ec03b Binary files /dev/null and b/7, 8 лаб/8/2.3.3 лаб 8/2.3.3 лаб 8/2.3.3 лаб 8.ico differ diff --git a/7, 8 лаб/8/2.3.3 лаб 8/2.3.3 лаб 8/2.3.3 лаб 8.rc b/7, 8 лаб/8/2.3.3 лаб 8/2.3.3 лаб 8/2.3.3 лаб 8.rc new file mode 100644 index 0000000..47926c3 Binary files /dev/null and b/7, 8 лаб/8/2.3.3 лаб 8/2.3.3 лаб 8/2.3.3 лаб 8.rc differ diff --git a/7, 8 лаб/8/2.3.3 лаб 8/2.3.3 лаб 8/2.3.3 лаб 8.vcxproj b/7, 8 лаб/8/2.3.3 лаб 8/2.3.3 лаб 8/2.3.3 лаб 8.vcxproj new file mode 100644 index 0000000..636c483 --- /dev/null +++ b/7, 8 лаб/8/2.3.3 лаб 8/2.3.3 лаб 8/2.3.3 лаб 8.vcxproj @@ -0,0 +1,148 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 17.0 + Win32Proj + {f993cf93-f7a4-4c80-a838-cb00f0c6c406} + My233лаб8 + 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, 8 лаб/8/2.3.3 лаб 8/2.3.3 лаб 8/2.3.3 лаб 8.vcxproj.filters b/7, 8 лаб/8/2.3.3 лаб 8/2.3.3 лаб 8/2.3.3 лаб 8.vcxproj.filters new file mode 100644 index 0000000..11088a2 --- /dev/null +++ b/7, 8 лаб/8/2.3.3 лаб 8/2.3.3 лаб 8/2.3.3 лаб 8.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, 8 лаб/8/2.3.3 лаб 8/2.3.3 лаб 8/Resource.h b/7, 8 лаб/8/2.3.3 лаб 8/2.3.3 лаб 8/Resource.h new file mode 100644 index 0000000..eaa5a33 --- /dev/null +++ b/7, 8 лаб/8/2.3.3 лаб 8/2.3.3 лаб 8/Resource.h @@ -0,0 +1,30 @@ +//{{NO_DEPENDENCIES}} +// Включаемый файл, созданный в Microsoft Visual C++. +// Используется 2.3.3 лаб 8.rc + +#define IDS_APP_TITLE 103 + +#define IDR_MAINFRAME 128 +#define IDD_MY2338_DIALOG 102 +#define IDD_ABOUTBOX 103 +#define IDM_ABOUT 104 +#define IDM_EXIT 105 +#define IDI_MY2338 107 +#define IDI_SMALL 108 +#define IDC_MY2338 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, 8 лаб/8/2.3.3 лаб 8/2.3.3 лаб 8/framework.h b/7, 8 лаб/8/2.3.3 лаб 8/2.3.3 лаб 8/framework.h new file mode 100644 index 0000000..a8f6dc8 --- /dev/null +++ b/7, 8 лаб/8/2.3.3 лаб 8/2.3.3 лаб 8/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, 8 лаб/8/2.3.3 лаб 8/2.3.3 лаб 8/small.ico b/7, 8 лаб/8/2.3.3 лаб 8/2.3.3 лаб 8/small.ico new file mode 100644 index 0000000..b3ec03b Binary files /dev/null and b/7, 8 лаб/8/2.3.3 лаб 8/2.3.3 лаб 8/small.ico differ diff --git a/7, 8 лаб/8/2.3.3 лаб 8/2.3.3 лаб 8/targetver.h b/7, 8 лаб/8/2.3.3 лаб 8/2.3.3 лаб 8/targetver.h new file mode 100644 index 0000000..d90003d --- /dev/null +++ b/7, 8 лаб/8/2.3.3 лаб 8/2.3.3 лаб 8/targetver.h @@ -0,0 +1,6 @@ +#pragma once + +// // При включении SDKDDKVer.h будет задана самая новая из доступных платформ Windows. +// Если вы планируете сборку приложения для предыдущей версии платформы Windows, включите WinSDKVer.h и +// задайте желаемую платформу в макросе _WIN32_WINNT, прежде чем включать SDKDDKVer.h. +#include diff --git a/7, 8 лаб/8/4 лаб 8/4 лаб 8.sln b/7, 8 лаб/8/4 лаб 8/4 лаб 8.sln new file mode 100644 index 0000000..d7118c7 --- /dev/null +++ b/7, 8 лаб/8/4 лаб 8/4 лаб 8.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.11.35222.181 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "4 лаб 8", "4 лаб 8\4 лаб 8.vcxproj", "{61F93194-03CB-4A4C-B868-B1AF899E239E}" +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 + {61F93194-03CB-4A4C-B868-B1AF899E239E}.Debug|x64.ActiveCfg = Debug|x64 + {61F93194-03CB-4A4C-B868-B1AF899E239E}.Debug|x64.Build.0 = Debug|x64 + {61F93194-03CB-4A4C-B868-B1AF899E239E}.Debug|x86.ActiveCfg = Debug|Win32 + {61F93194-03CB-4A4C-B868-B1AF899E239E}.Debug|x86.Build.0 = Debug|Win32 + {61F93194-03CB-4A4C-B868-B1AF899E239E}.Release|x64.ActiveCfg = Release|x64 + {61F93194-03CB-4A4C-B868-B1AF899E239E}.Release|x64.Build.0 = Release|x64 + {61F93194-03CB-4A4C-B868-B1AF899E239E}.Release|x86.ActiveCfg = Release|Win32 + {61F93194-03CB-4A4C-B868-B1AF899E239E}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {9F3821D8-3BE7-4093-8ED0-7CE025C424A1} + EndGlobalSection +EndGlobal diff --git a/7, 8 лаб/8/4 лаб 8/4 лаб 8/4 лаб 8.cpp b/7, 8 лаб/8/4 лаб 8/4 лаб 8/4 лаб 8.cpp new file mode 100644 index 0000000..1377ac2 --- /dev/null +++ b/7, 8 лаб/8/4 лаб 8/4 лаб 8/4 лаб 8.cpp @@ -0,0 +1,200 @@ +// 4 лаб 8.cpp : Определяет точку входа для приложения. +// + +#include "framework.h" +#include "4 лаб 8.h" + +#define MAX_LOADSTRING 100 + +// Глобальные переменные: +HINSTANCE hInst; // текущий экземпляр +WCHAR szTitle[MAX_LOADSTRING]; // Текст строки заголовка +WCHAR szWindowClass[MAX_LOADSTRING]; // имя класса главного окна + +// Отправить объявления функций, включенных в этот модуль кода: +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_MY48, szWindowClass, MAX_LOADSTRING); + MyRegisterClass(hInstance); + + // Выполнить инициализацию приложения: + if (!InitInstance (hInstance, nCmdShow)) + { + return FALSE; + } + + HACCEL hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_MY48)); + + 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_MY48)); + wcex.hCursor = LoadCursor(nullptr, IDC_ARROW); + wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); + wcex.lpszMenuName = MAKEINTRESOURCEW(IDC_MY48); + 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) +// +// ЦЕЛЬ: Обрабатывает сообщения в главном окне. +// +// WM_COMMAND - обработать меню приложения +// WM_PAINT - Отрисовка главного окна +// WM_DESTROY - отправить сообщение о выходе и вернуться +// +// +void Logo(HDC hdc, int x, int y) { + + HPEN hPen = CreatePen(PS_SOLID, 3, RGB(0, 0, 0)); + SelectObject(hdc, hPen); + + Ellipse(hdc, 60 + x, 60 + y, 110 + x, 110 + y); + + MoveToEx(hdc, 75 + x, 85 + y, NULL); + LineTo(hdc, 10 + x, 60 + y); + LineTo(hdc, 89 + x, 83 + y); + + MoveToEx(hdc, 70 + x, 90 + y, NULL); + LineTo(hdc, 90 + x, 90 + y); + LineTo(hdc, 160 + x, 60 + y); + LineTo(hdc, 70 + x, 90 + y); + +} +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... + Logo(hdc, 0, 0); + EndPaint(hWnd, &ps); + } + 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, 8 лаб/8/4 лаб 8/4 лаб 8/4 лаб 8.h b/7, 8 лаб/8/4 лаб 8/4 лаб 8/4 лаб 8.h new file mode 100644 index 0000000..b798bf5 --- /dev/null +++ b/7, 8 лаб/8/4 лаб 8/4 лаб 8/4 лаб 8.h @@ -0,0 +1,3 @@ +#pragma once + +#include "resource.h" diff --git a/7, 8 лаб/8/4 лаб 8/4 лаб 8/4 лаб 8.ico b/7, 8 лаб/8/4 лаб 8/4 лаб 8/4 лаб 8.ico new file mode 100644 index 0000000..b3ec03b Binary files /dev/null and b/7, 8 лаб/8/4 лаб 8/4 лаб 8/4 лаб 8.ico differ diff --git a/7, 8 лаб/8/4 лаб 8/4 лаб 8/4 лаб 8.rc b/7, 8 лаб/8/4 лаб 8/4 лаб 8/4 лаб 8.rc new file mode 100644 index 0000000..aa1b872 Binary files /dev/null and b/7, 8 лаб/8/4 лаб 8/4 лаб 8/4 лаб 8.rc differ diff --git a/7, 8 лаб/8/4 лаб 8/4 лаб 8/4 лаб 8.vcxproj b/7, 8 лаб/8/4 лаб 8/4 лаб 8/4 лаб 8.vcxproj new file mode 100644 index 0000000..2b047e9 --- /dev/null +++ b/7, 8 лаб/8/4 лаб 8/4 лаб 8/4 лаб 8.vcxproj @@ -0,0 +1,148 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 17.0 + Win32Proj + {61f93194-03cb-4a4c-b868-b1af899e239e} + My4лаб8 + 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, 8 лаб/8/4 лаб 8/4 лаб 8/4 лаб 8.vcxproj.filters b/7, 8 лаб/8/4 лаб 8/4 лаб 8/4 лаб 8.vcxproj.filters new file mode 100644 index 0000000..ac98565 --- /dev/null +++ b/7, 8 лаб/8/4 лаб 8/4 лаб 8/4 лаб 8.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, 8 лаб/8/4 лаб 8/4 лаб 8/Resource.h b/7, 8 лаб/8/4 лаб 8/4 лаб 8/Resource.h new file mode 100644 index 0000000..00d9a74 --- /dev/null +++ b/7, 8 лаб/8/4 лаб 8/4 лаб 8/Resource.h @@ -0,0 +1,30 @@ +//{{NO_DEPENDENCIES}} +// Включаемый файл, созданный в Microsoft Visual C++. +// Используется 4 лаб 8.rc + +#define IDS_APP_TITLE 103 + +#define IDR_MAINFRAME 128 +#define IDD_MY48_DIALOG 102 +#define IDD_ABOUTBOX 103 +#define IDM_ABOUT 104 +#define IDM_EXIT 105 +#define IDI_MY48 107 +#define IDI_SMALL 108 +#define IDC_MY48 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, 8 лаб/8/4 лаб 8/4 лаб 8/framework.h b/7, 8 лаб/8/4 лаб 8/4 лаб 8/framework.h new file mode 100644 index 0000000..a8f6dc8 --- /dev/null +++ b/7, 8 лаб/8/4 лаб 8/4 лаб 8/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, 8 лаб/8/4 лаб 8/4 лаб 8/small.ico b/7, 8 лаб/8/4 лаб 8/4 лаб 8/small.ico new file mode 100644 index 0000000..b3ec03b Binary files /dev/null and b/7, 8 лаб/8/4 лаб 8/4 лаб 8/small.ico differ diff --git a/7, 8 лаб/8/4 лаб 8/4 лаб 8/targetver.h b/7, 8 лаб/8/4 лаб 8/4 лаб 8/targetver.h new file mode 100644 index 0000000..d90003d --- /dev/null +++ b/7, 8 лаб/8/4 лаб 8/4 лаб 8/targetver.h @@ -0,0 +1,6 @@ +#pragma once + +// // При включении SDKDDKVer.h будет задана самая новая из доступных платформ Windows. +// Если вы планируете сборку приложения для предыдущей версии платформы Windows, включите WinSDKVer.h и +// задайте желаемую платформу в макросе _WIN32_WINNT, прежде чем включать SDKDDKVer.h. +#include diff --git a/7, 8 лаб/8/5 лаб 8/5 лаб 8.sln b/7, 8 лаб/8/5 лаб 8/5 лаб 8.sln new file mode 100644 index 0000000..63f3e18 --- /dev/null +++ b/7, 8 лаб/8/5 лаб 8/5 лаб 8.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.11.35222.181 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "5 лаб 8", "5 лаб 8\5 лаб 8.vcxproj", "{64D08E30-0792-47BD-AA31-D4A1E3DFB84A}" +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 + {64D08E30-0792-47BD-AA31-D4A1E3DFB84A}.Debug|x64.ActiveCfg = Debug|x64 + {64D08E30-0792-47BD-AA31-D4A1E3DFB84A}.Debug|x64.Build.0 = Debug|x64 + {64D08E30-0792-47BD-AA31-D4A1E3DFB84A}.Debug|x86.ActiveCfg = Debug|Win32 + {64D08E30-0792-47BD-AA31-D4A1E3DFB84A}.Debug|x86.Build.0 = Debug|Win32 + {64D08E30-0792-47BD-AA31-D4A1E3DFB84A}.Release|x64.ActiveCfg = Release|x64 + {64D08E30-0792-47BD-AA31-D4A1E3DFB84A}.Release|x64.Build.0 = Release|x64 + {64D08E30-0792-47BD-AA31-D4A1E3DFB84A}.Release|x86.ActiveCfg = Release|Win32 + {64D08E30-0792-47BD-AA31-D4A1E3DFB84A}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {F4DA27F2-2936-4B63-8046-82E976F4D3A1} + EndGlobalSection +EndGlobal diff --git a/7, 8 лаб/8/5 лаб 8/5 лаб 8/5 лаб 8.cpp b/7, 8 лаб/8/5 лаб 8/5 лаб 8/5 лаб 8.cpp new file mode 100644 index 0000000..93db7e0 --- /dev/null +++ b/7, 8 лаб/8/5 лаб 8/5 лаб 8/5 лаб 8.cpp @@ -0,0 +1,206 @@ +// 5 лаб 8.cpp : Определяет точку входа для приложения. +// + +#include "framework.h" +#include "5 лаб 8.h" + +#define MAX_LOADSTRING 100 + +// Глобальные переменные: +HINSTANCE hInst; // текущий экземпляр +WCHAR szTitle[MAX_LOADSTRING]; // Текст строки заголовка +WCHAR szWindowClass[MAX_LOADSTRING]; // имя класса главного окна + +// Отправить объявления функций, включенных в этот модуль кода: +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_MY58, szWindowClass, MAX_LOADSTRING); + MyRegisterClass(hInstance); + + // Выполнить инициализацию приложения: + if (!InitInstance (hInstance, nCmdShow)) + { + return FALSE; + } + + HACCEL hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_MY58)); + + 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_MY58)); + wcex.hCursor = LoadCursor(nullptr, IDC_ARROW); + wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); + wcex.lpszMenuName = MAKEINTRESOURCEW(IDC_MY58); + 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) +// +// ЦЕЛЬ: Обрабатывает сообщения в главном окне. +// +// WM_COMMAND - обработать меню приложения +// WM_PAINT - Отрисовка главного окна +// WM_DESTROY - отправить сообщение о выходе и вернуться +// +// +void Logo(HDC hdc, int x, int y) { + + HPEN hPen = CreatePen(PS_SOLID, 3, RGB(0, 0, 0)); + SelectObject(hdc, hPen); + + Ellipse(hdc, 60 + x, 60 + y, 110 + x, 110 + y); + + MoveToEx(hdc, 75 + x, 85 + y, NULL); + LineTo(hdc, 10 + x, 60 + y); + LineTo(hdc, 89 + x, 83 + y); + + MoveToEx(hdc, 70 + x, 90 + y, NULL); + LineTo(hdc, 90 + x, 90 + y); + LineTo(hdc, 160 + x, 60 + y); + LineTo(hdc, 70 + x, 90 + y); + +} +void Logo1(HDC hdc) { + Logo(hdc, 10, 40); + Logo(hdc, 180, 40); + Logo(hdc, 350, 40); + Logo(hdc, 520, 40); + +} +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... + Logo1(hdc); + + EndPaint(hWnd, &ps); + } + 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, 8 лаб/8/5 лаб 8/5 лаб 8/5 лаб 8.h b/7, 8 лаб/8/5 лаб 8/5 лаб 8/5 лаб 8.h new file mode 100644 index 0000000..b798bf5 --- /dev/null +++ b/7, 8 лаб/8/5 лаб 8/5 лаб 8/5 лаб 8.h @@ -0,0 +1,3 @@ +#pragma once + +#include "resource.h" diff --git a/7, 8 лаб/8/5 лаб 8/5 лаб 8/5 лаб 8.ico b/7, 8 лаб/8/5 лаб 8/5 лаб 8/5 лаб 8.ico new file mode 100644 index 0000000..b3ec03b Binary files /dev/null and b/7, 8 лаб/8/5 лаб 8/5 лаб 8/5 лаб 8.ico differ diff --git a/7, 8 лаб/8/5 лаб 8/5 лаб 8/5 лаб 8.rc b/7, 8 лаб/8/5 лаб 8/5 лаб 8/5 лаб 8.rc new file mode 100644 index 0000000..b94801b Binary files /dev/null and b/7, 8 лаб/8/5 лаб 8/5 лаб 8/5 лаб 8.rc differ diff --git a/7, 8 лаб/8/5 лаб 8/5 лаб 8/5 лаб 8.vcxproj b/7, 8 лаб/8/5 лаб 8/5 лаб 8/5 лаб 8.vcxproj new file mode 100644 index 0000000..3d9977e --- /dev/null +++ b/7, 8 лаб/8/5 лаб 8/5 лаб 8/5 лаб 8.vcxproj @@ -0,0 +1,148 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 17.0 + Win32Proj + {64d08e30-0792-47bd-aa31-d4a1e3dfb84a} + My5лаб8 + 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, 8 лаб/8/5 лаб 8/5 лаб 8/5 лаб 8.vcxproj.filters b/7, 8 лаб/8/5 лаб 8/5 лаб 8/5 лаб 8.vcxproj.filters new file mode 100644 index 0000000..cc0391c --- /dev/null +++ b/7, 8 лаб/8/5 лаб 8/5 лаб 8/5 лаб 8.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, 8 лаб/8/5 лаб 8/5 лаб 8/Resource.h b/7, 8 лаб/8/5 лаб 8/5 лаб 8/Resource.h new file mode 100644 index 0000000..a1671d2 --- /dev/null +++ b/7, 8 лаб/8/5 лаб 8/5 лаб 8/Resource.h @@ -0,0 +1,30 @@ +//{{NO_DEPENDENCIES}} +// Включаемый файл, созданный в Microsoft Visual C++. +// Используется 5 лаб 8.rc + +#define IDS_APP_TITLE 103 + +#define IDR_MAINFRAME 128 +#define IDD_MY58_DIALOG 102 +#define IDD_ABOUTBOX 103 +#define IDM_ABOUT 104 +#define IDM_EXIT 105 +#define IDI_MY58 107 +#define IDI_SMALL 108 +#define IDC_MY58 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, 8 лаб/8/5 лаб 8/5 лаб 8/framework.h b/7, 8 лаб/8/5 лаб 8/5 лаб 8/framework.h new file mode 100644 index 0000000..a8f6dc8 --- /dev/null +++ b/7, 8 лаб/8/5 лаб 8/5 лаб 8/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, 8 лаб/8/5 лаб 8/5 лаб 8/small.ico b/7, 8 лаб/8/5 лаб 8/5 лаб 8/small.ico new file mode 100644 index 0000000..b3ec03b Binary files /dev/null and b/7, 8 лаб/8/5 лаб 8/5 лаб 8/small.ico differ diff --git a/7, 8 лаб/8/5 лаб 8/5 лаб 8/targetver.h b/7, 8 лаб/8/5 лаб 8/5 лаб 8/targetver.h new file mode 100644 index 0000000..d90003d --- /dev/null +++ b/7, 8 лаб/8/5 лаб 8/5 лаб 8/targetver.h @@ -0,0 +1,6 @@ +#pragma once + +// // При включении SDKDDKVer.h будет задана самая новая из доступных платформ Windows. +// Если вы планируете сборку приложения для предыдущей версии платформы Windows, включите WinSDKVer.h и +// задайте желаемую платформу в макросе _WIN32_WINNT, прежде чем включать SDKDDKVer.h. +#include diff --git a/7, 8 лаб/8/5.2 лаб 8/5.2 лаб 8.sln b/7, 8 лаб/8/5.2 лаб 8/5.2 лаб 8.sln new file mode 100644 index 0000000..d12cd85 --- /dev/null +++ b/7, 8 лаб/8/5.2 лаб 8/5.2 лаб 8.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.11.35222.181 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "5.2 лаб 8", "5.2 лаб 8\5.2 лаб 8.vcxproj", "{8050BD84-9889-418E-9376-E66F35B38263}" +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 + {8050BD84-9889-418E-9376-E66F35B38263}.Debug|x64.ActiveCfg = Debug|x64 + {8050BD84-9889-418E-9376-E66F35B38263}.Debug|x64.Build.0 = Debug|x64 + {8050BD84-9889-418E-9376-E66F35B38263}.Debug|x86.ActiveCfg = Debug|Win32 + {8050BD84-9889-418E-9376-E66F35B38263}.Debug|x86.Build.0 = Debug|Win32 + {8050BD84-9889-418E-9376-E66F35B38263}.Release|x64.ActiveCfg = Release|x64 + {8050BD84-9889-418E-9376-E66F35B38263}.Release|x64.Build.0 = Release|x64 + {8050BD84-9889-418E-9376-E66F35B38263}.Release|x86.ActiveCfg = Release|Win32 + {8050BD84-9889-418E-9376-E66F35B38263}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {A7B1D420-94F9-4E4A-9326-301766A71D80} + EndGlobalSection +EndGlobal diff --git a/7, 8 лаб/8/5.2 лаб 8/5.2 лаб 8/5.2 лаб 8.cpp b/7, 8 лаб/8/5.2 лаб 8/5.2 лаб 8/5.2 лаб 8.cpp new file mode 100644 index 0000000..0dc6eea --- /dev/null +++ b/7, 8 лаб/8/5.2 лаб 8/5.2 лаб 8/5.2 лаб 8.cpp @@ -0,0 +1,207 @@ +// 5.2 лаб 8.cpp : Определяет точку входа для приложения. +// + +#include "framework.h" +#include "5.2 лаб 8.h" + +#define MAX_LOADSTRING 100 + +// Глобальные переменные: +HINSTANCE hInst; // текущий экземпляр +WCHAR szTitle[MAX_LOADSTRING]; // Текст строки заголовка +WCHAR szWindowClass[MAX_LOADSTRING]; // имя класса главного окна + +// Отправить объявления функций, включенных в этот модуль кода: +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_MY528, szWindowClass, MAX_LOADSTRING); + MyRegisterClass(hInstance); + + // Выполнить инициализацию приложения: + if (!InitInstance (hInstance, nCmdShow)) + { + return FALSE; + } + + HACCEL hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_MY528)); + + 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_MY528)); + wcex.hCursor = LoadCursor(nullptr, IDC_ARROW); + wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); + wcex.lpszMenuName = MAKEINTRESOURCEW(IDC_MY528); + 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) +// +// ЦЕЛЬ: Обрабатывает сообщения в главном окне. +// +// WM_COMMAND - обработать меню приложения +// WM_PAINT - Отрисовка главного окна +// WM_DESTROY - отправить сообщение о выходе и вернуться +// +// +void Logo(HDC hdc, int x, int y) { + + HPEN hPen = CreatePen(PS_SOLID, 3, RGB(0, 0, 0)); + SelectObject(hdc, hPen); + + Ellipse(hdc, 60 + x, 60 + y, 110 + x, 110 + y); + + MoveToEx(hdc, 75 + x, 85 + y, NULL); + LineTo(hdc, 10 + x, 60 + y); + LineTo(hdc, 89 + x, 83 + y); + + MoveToEx(hdc, 70 + x, 90 + y, NULL); + LineTo(hdc, 90 + x, 90 + y); + LineTo(hdc, 160 + x, 60 + y); + LineTo(hdc, 70 + x, 90 + y); + +} +void Logo2(HDC hdc) { + Logo(hdc, 10, 60); + Logo(hdc, 10, 130); + Logo(hdc, 10, 200); + Logo(hdc, 10, 270); + Logo(hdc, 10, 340); + Logo(hdc, 10, 410); +} +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... + + Logo2(hdc); + EndPaint(hWnd, &ps); + } + 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, 8 лаб/8/5.2 лаб 8/5.2 лаб 8/5.2 лаб 8.h b/7, 8 лаб/8/5.2 лаб 8/5.2 лаб 8/5.2 лаб 8.h new file mode 100644 index 0000000..b798bf5 --- /dev/null +++ b/7, 8 лаб/8/5.2 лаб 8/5.2 лаб 8/5.2 лаб 8.h @@ -0,0 +1,3 @@ +#pragma once + +#include "resource.h" diff --git a/7, 8 лаб/8/5.2 лаб 8/5.2 лаб 8/5.2 лаб 8.ico b/7, 8 лаб/8/5.2 лаб 8/5.2 лаб 8/5.2 лаб 8.ico new file mode 100644 index 0000000..b3ec03b Binary files /dev/null and b/7, 8 лаб/8/5.2 лаб 8/5.2 лаб 8/5.2 лаб 8.ico differ diff --git a/7, 8 лаб/8/5.2 лаб 8/5.2 лаб 8/5.2 лаб 8.rc b/7, 8 лаб/8/5.2 лаб 8/5.2 лаб 8/5.2 лаб 8.rc new file mode 100644 index 0000000..4e376bb Binary files /dev/null and b/7, 8 лаб/8/5.2 лаб 8/5.2 лаб 8/5.2 лаб 8.rc differ diff --git a/7, 8 лаб/8/5.2 лаб 8/5.2 лаб 8/5.2 лаб 8.vcxproj b/7, 8 лаб/8/5.2 лаб 8/5.2 лаб 8/5.2 лаб 8.vcxproj new file mode 100644 index 0000000..5a7d6f9 --- /dev/null +++ b/7, 8 лаб/8/5.2 лаб 8/5.2 лаб 8/5.2 лаб 8.vcxproj @@ -0,0 +1,148 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 17.0 + Win32Proj + {8050bd84-9889-418e-9376-e66f35b38263} + My52лаб8 + 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, 8 лаб/8/5.2 лаб 8/5.2 лаб 8/5.2 лаб 8.vcxproj.filters b/7, 8 лаб/8/5.2 лаб 8/5.2 лаб 8/5.2 лаб 8.vcxproj.filters new file mode 100644 index 0000000..205c087 --- /dev/null +++ b/7, 8 лаб/8/5.2 лаб 8/5.2 лаб 8/5.2 лаб 8.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, 8 лаб/8/5.2 лаб 8/5.2 лаб 8/Resource.h b/7, 8 лаб/8/5.2 лаб 8/5.2 лаб 8/Resource.h new file mode 100644 index 0000000..703a1fe --- /dev/null +++ b/7, 8 лаб/8/5.2 лаб 8/5.2 лаб 8/Resource.h @@ -0,0 +1,30 @@ +//{{NO_DEPENDENCIES}} +// Включаемый файл, созданный в Microsoft Visual C++. +// Используется 5.2 лаб 8.rc + +#define IDS_APP_TITLE 103 + +#define IDR_MAINFRAME 128 +#define IDD_MY528_DIALOG 102 +#define IDD_ABOUTBOX 103 +#define IDM_ABOUT 104 +#define IDM_EXIT 105 +#define IDI_MY528 107 +#define IDI_SMALL 108 +#define IDC_MY528 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, 8 лаб/8/5.2 лаб 8/5.2 лаб 8/framework.h b/7, 8 лаб/8/5.2 лаб 8/5.2 лаб 8/framework.h new file mode 100644 index 0000000..a8f6dc8 --- /dev/null +++ b/7, 8 лаб/8/5.2 лаб 8/5.2 лаб 8/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, 8 лаб/8/5.2 лаб 8/5.2 лаб 8/small.ico b/7, 8 лаб/8/5.2 лаб 8/5.2 лаб 8/small.ico new file mode 100644 index 0000000..b3ec03b Binary files /dev/null and b/7, 8 лаб/8/5.2 лаб 8/5.2 лаб 8/small.ico differ diff --git a/7, 8 лаб/8/5.2 лаб 8/5.2 лаб 8/targetver.h b/7, 8 лаб/8/5.2 лаб 8/5.2 лаб 8/targetver.h new file mode 100644 index 0000000..d90003d --- /dev/null +++ b/7, 8 лаб/8/5.2 лаб 8/5.2 лаб 8/targetver.h @@ -0,0 +1,6 @@ +#pragma once + +// // При включении SDKDDKVer.h будет задана самая новая из доступных платформ Windows. +// Если вы планируете сборку приложения для предыдущей версии платформы Windows, включите WinSDKVer.h и +// задайте желаемую платформу в макросе _WIN32_WINNT, прежде чем включать SDKDDKVer.h. +#include diff --git a/7, 8 лаб/8/5.3 лаб 8/5.3 лаб 8.sln b/7, 8 лаб/8/5.3 лаб 8/5.3 лаб 8.sln new file mode 100644 index 0000000..eec8a83 --- /dev/null +++ b/7, 8 лаб/8/5.3 лаб 8/5.3 лаб 8.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.11.35222.181 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "5.3 лаб 8", "5.3 лаб 8\5.3 лаб 8.vcxproj", "{E0A12C10-FE08-4C37-B1E8-98BCC2B78E60}" +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 + {E0A12C10-FE08-4C37-B1E8-98BCC2B78E60}.Debug|x64.ActiveCfg = Debug|x64 + {E0A12C10-FE08-4C37-B1E8-98BCC2B78E60}.Debug|x64.Build.0 = Debug|x64 + {E0A12C10-FE08-4C37-B1E8-98BCC2B78E60}.Debug|x86.ActiveCfg = Debug|Win32 + {E0A12C10-FE08-4C37-B1E8-98BCC2B78E60}.Debug|x86.Build.0 = Debug|Win32 + {E0A12C10-FE08-4C37-B1E8-98BCC2B78E60}.Release|x64.ActiveCfg = Release|x64 + {E0A12C10-FE08-4C37-B1E8-98BCC2B78E60}.Release|x64.Build.0 = Release|x64 + {E0A12C10-FE08-4C37-B1E8-98BCC2B78E60}.Release|x86.ActiveCfg = Release|Win32 + {E0A12C10-FE08-4C37-B1E8-98BCC2B78E60}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {FD86D9F3-AF88-4DC0-897D-6E3446F9A565} + EndGlobalSection +EndGlobal diff --git a/7, 8 лаб/8/5.3 лаб 8/5.3 лаб 8/5.3 лаб 8.cpp b/7, 8 лаб/8/5.3 лаб 8/5.3 лаб 8/5.3 лаб 8.cpp new file mode 100644 index 0000000..b8be6c2 --- /dev/null +++ b/7, 8 лаб/8/5.3 лаб 8/5.3 лаб 8/5.3 лаб 8.cpp @@ -0,0 +1,204 @@ +// 5.3 лаб 8.cpp : Определяет точку входа для приложения. +// + +#include "framework.h" +#include "5.3 лаб 8.h" + +#define MAX_LOADSTRING 100 + +// Глобальные переменные: +HINSTANCE hInst; // текущий экземпляр +WCHAR szTitle[MAX_LOADSTRING]; // Текст строки заголовка +WCHAR szWindowClass[MAX_LOADSTRING]; // имя класса главного окна + +// Отправить объявления функций, включенных в этот модуль кода: +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_MY538, szWindowClass, MAX_LOADSTRING); + MyRegisterClass(hInstance); + + // Выполнить инициализацию приложения: + if (!InitInstance (hInstance, nCmdShow)) + { + return FALSE; + } + + HACCEL hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_MY538)); + + 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_MY538)); + wcex.hCursor = LoadCursor(nullptr, IDC_ARROW); + wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); + wcex.lpszMenuName = MAKEINTRESOURCEW(IDC_MY538); + 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) +// +// ЦЕЛЬ: Обрабатывает сообщения в главном окне. +// +// WM_COMMAND - обработать меню приложения +// WM_PAINT - Отрисовка главного окна +// WM_DESTROY - отправить сообщение о выходе и вернуться +// +// +void Logo(HDC hdc, int x, int y) { + + HPEN hPen = CreatePen(PS_SOLID, 3, RGB(0, 0, 0)); + SelectObject(hdc, hPen); + + Ellipse(hdc, 60 + x, 60 + y, 110 + x, 110 + y); + + MoveToEx(hdc, 75 + x, 85 + y, NULL); + LineTo(hdc, 10 + x, 60 + y); + LineTo(hdc, 89 + x, 83 + y); + + MoveToEx(hdc, 70 + x, 90 + y, NULL); + LineTo(hdc, 90 + x, 90 + y); + LineTo(hdc, 160 + x, 60 + y); + LineTo(hdc, 70 + x, 90 + y); + +} +void Logo3(HDC hdc) { + Logo(hdc, 10, 60); + Logo(hdc, 180, 130); + Logo(hdc, 350, 200); + Logo(hdc, 520, 270); +} +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... + Logo3(hdc); + EndPaint(hWnd, &ps); + } + 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, 8 лаб/8/5.3 лаб 8/5.3 лаб 8/5.3 лаб 8.h b/7, 8 лаб/8/5.3 лаб 8/5.3 лаб 8/5.3 лаб 8.h new file mode 100644 index 0000000..b798bf5 --- /dev/null +++ b/7, 8 лаб/8/5.3 лаб 8/5.3 лаб 8/5.3 лаб 8.h @@ -0,0 +1,3 @@ +#pragma once + +#include "resource.h" diff --git a/7, 8 лаб/8/5.3 лаб 8/5.3 лаб 8/5.3 лаб 8.ico b/7, 8 лаб/8/5.3 лаб 8/5.3 лаб 8/5.3 лаб 8.ico new file mode 100644 index 0000000..b3ec03b Binary files /dev/null and b/7, 8 лаб/8/5.3 лаб 8/5.3 лаб 8/5.3 лаб 8.ico differ diff --git a/7, 8 лаб/8/5.3 лаб 8/5.3 лаб 8/5.3 лаб 8.rc b/7, 8 лаб/8/5.3 лаб 8/5.3 лаб 8/5.3 лаб 8.rc new file mode 100644 index 0000000..9524778 Binary files /dev/null and b/7, 8 лаб/8/5.3 лаб 8/5.3 лаб 8/5.3 лаб 8.rc differ diff --git a/7, 8 лаб/8/5.3 лаб 8/5.3 лаб 8/5.3 лаб 8.vcxproj b/7, 8 лаб/8/5.3 лаб 8/5.3 лаб 8/5.3 лаб 8.vcxproj new file mode 100644 index 0000000..aa8fbd7 --- /dev/null +++ b/7, 8 лаб/8/5.3 лаб 8/5.3 лаб 8/5.3 лаб 8.vcxproj @@ -0,0 +1,148 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 17.0 + Win32Proj + {e0a12c10-fe08-4c37-b1e8-98bcc2b78e60} + My53лаб8 + 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, 8 лаб/8/5.3 лаб 8/5.3 лаб 8/5.3 лаб 8.vcxproj.filters b/7, 8 лаб/8/5.3 лаб 8/5.3 лаб 8/5.3 лаб 8.vcxproj.filters new file mode 100644 index 0000000..83cee1f --- /dev/null +++ b/7, 8 лаб/8/5.3 лаб 8/5.3 лаб 8/5.3 лаб 8.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, 8 лаб/8/5.3 лаб 8/5.3 лаб 8/Resource.h b/7, 8 лаб/8/5.3 лаб 8/5.3 лаб 8/Resource.h new file mode 100644 index 0000000..2349b20 --- /dev/null +++ b/7, 8 лаб/8/5.3 лаб 8/5.3 лаб 8/Resource.h @@ -0,0 +1,30 @@ +//{{NO_DEPENDENCIES}} +// Включаемый файл, созданный в Microsoft Visual C++. +// Используется 5.3 лаб 8.rc + +#define IDS_APP_TITLE 103 + +#define IDR_MAINFRAME 128 +#define IDD_MY538_DIALOG 102 +#define IDD_ABOUTBOX 103 +#define IDM_ABOUT 104 +#define IDM_EXIT 105 +#define IDI_MY538 107 +#define IDI_SMALL 108 +#define IDC_MY538 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, 8 лаб/8/5.3 лаб 8/5.3 лаб 8/framework.h b/7, 8 лаб/8/5.3 лаб 8/5.3 лаб 8/framework.h new file mode 100644 index 0000000..a8f6dc8 --- /dev/null +++ b/7, 8 лаб/8/5.3 лаб 8/5.3 лаб 8/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, 8 лаб/8/5.3 лаб 8/5.3 лаб 8/small.ico b/7, 8 лаб/8/5.3 лаб 8/5.3 лаб 8/small.ico new file mode 100644 index 0000000..b3ec03b Binary files /dev/null and b/7, 8 лаб/8/5.3 лаб 8/5.3 лаб 8/small.ico differ diff --git a/7, 8 лаб/8/5.3 лаб 8/5.3 лаб 8/targetver.h b/7, 8 лаб/8/5.3 лаб 8/5.3 лаб 8/targetver.h new file mode 100644 index 0000000..d90003d --- /dev/null +++ b/7, 8 лаб/8/5.3 лаб 8/5.3 лаб 8/targetver.h @@ -0,0 +1,6 @@ +#pragma once + +// // При включении SDKDDKVer.h будет задана самая новая из доступных платформ Windows. +// Если вы планируете сборку приложения для предыдущей версии платформы Windows, включите WinSDKVer.h и +// задайте желаемую платформу в макросе _WIN32_WINNT, прежде чем включать SDKDDKVer.h. +#include diff --git a/7, 8 лаб/№ 1 лаб 8.png b/7, 8 лаб/№ 1 лаб 8.png new file mode 100644 index 0000000..bf49008 Binary files /dev/null and b/7, 8 лаб/№ 1 лаб 8.png differ diff --git a/7, 8 лаб/№ 2 лаб 8.png b/7, 8 лаб/№ 2 лаб 8.png new file mode 100644 index 0000000..bde8fe2 Binary files /dev/null and b/7, 8 лаб/№ 2 лаб 8.png differ diff --git a/7, 8 лаб/№ 3 лаб 8.png b/7, 8 лаб/№ 3 лаб 8.png new file mode 100644 index 0000000..568002a Binary files /dev/null and b/7, 8 лаб/№ 3 лаб 8.png differ diff --git a/7, 8 лаб/№ 4 лаб 8.png b/7, 8 лаб/№ 4 лаб 8.png new file mode 100644 index 0000000..565f373 Binary files /dev/null and b/7, 8 лаб/№ 4 лаб 8.png differ diff --git a/9, 10 лаб/1, 2 лаб 10/1 лаб 10.sln b/9, 10 лаб/1, 2 лаб 10/1 лаб 10.sln new file mode 100644 index 0000000..c9629b4 --- /dev/null +++ b/9, 10 лаб/1, 2 лаб 10/1 лаб 10.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.11.35222.181 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "1 лаб 10", "1 лаб 10\1 лаб 10.vcxproj", "{180731D8-DD1D-4345-B1DB-ABE639EEDEB0}" +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 + {180731D8-DD1D-4345-B1DB-ABE639EEDEB0}.Debug|x64.ActiveCfg = Debug|x64 + {180731D8-DD1D-4345-B1DB-ABE639EEDEB0}.Debug|x64.Build.0 = Debug|x64 + {180731D8-DD1D-4345-B1DB-ABE639EEDEB0}.Debug|x86.ActiveCfg = Debug|Win32 + {180731D8-DD1D-4345-B1DB-ABE639EEDEB0}.Debug|x86.Build.0 = Debug|Win32 + {180731D8-DD1D-4345-B1DB-ABE639EEDEB0}.Release|x64.ActiveCfg = Release|x64 + {180731D8-DD1D-4345-B1DB-ABE639EEDEB0}.Release|x64.Build.0 = Release|x64 + {180731D8-DD1D-4345-B1DB-ABE639EEDEB0}.Release|x86.ActiveCfg = Release|Win32 + {180731D8-DD1D-4345-B1DB-ABE639EEDEB0}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {FCF90060-29BF-4992-A986-63ECD2564E38} + EndGlobalSection +EndGlobal diff --git a/9, 10 лаб/1, 2 лаб 10/1 лаб 10/1 лаб 10.vcxproj b/9, 10 лаб/1, 2 лаб 10/1 лаб 10/1 лаб 10.vcxproj new file mode 100644 index 0000000..889391a --- /dev/null +++ b/9, 10 лаб/1, 2 лаб 10/1 лаб 10/1 лаб 10.vcxproj @@ -0,0 +1,135 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 17.0 + Win32Proj + {180731d8-dd1d-4345-b1db-abe639eedeb0} + My1лаб10 + 10.0 + + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + + + + + + + + + + + + + + + + + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/9, 10 лаб/1, 2 лаб 10/1 лаб 10/1 лаб 10.vcxproj.filters b/9, 10 лаб/1, 2 лаб 10/1 лаб 10/1 лаб 10.vcxproj.filters new file mode 100644 index 0000000..3f0db78 --- /dev/null +++ b/9, 10 лаб/1, 2 лаб 10/1 лаб 10/1 лаб 10.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {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/9, 10 лаб/1, 2 лаб 10/1 лаб 10/FileName.cpp b/9, 10 лаб/1, 2 лаб 10/1 лаб 10/FileName.cpp new file mode 100644 index 0000000..02afa27 --- /dev/null +++ b/9, 10 лаб/1, 2 лаб 10/1 лаб 10/FileName.cpp @@ -0,0 +1,66 @@ +#include +#include + +void Task1() { + printf("Task1() START\n"); + int n; + int m; + + printf("n = "); + scanf_s("%d", &n); + printf("m = "); + scanf_s("%d", &m); + + int i = 1; + do { + int j = 1; + do { + printf("%d ", i * 10 + j); + j += 1; + } while (j <= m); + printf("\n"); + i += 1; + } while (i <= n); + printf("Task1() FINISH()\n"); +} + +void Task2() { + printf("Task2() START\n"); + int i = 1; + do { + int j = 1; + do { + printf("%5d ", i * j); + j += 1; + } while (j <= 10); + printf("\n"); + i += 1; + } while (i <= 10); + printf("Task2() FINISH()\n"); +} + +void main() { + SetConsoleCP(1251); + SetConsoleOutputCP(1251); + int n = 1; + + do { + printf("\n"); + printf("\n"); + printf(" \n"); + printf("1: 1 (i * 10 + j)\n"); + printf("2: 2 ( )\n"); + printf("\n"); + printf("0: \n"); + + scanf_s("%d", &n); + switch (n) { + case 1: + Task1(); + break; + case 2: + Task2(); + break; + } + } while (n != 0); +} \ No newline at end of file diff --git a/9, 10 лаб/1, 2, 3, 5 лаб 9/5 лаб 9.sln b/9, 10 лаб/1, 2, 3, 5 лаб 9/5 лаб 9.sln new file mode 100644 index 0000000..b523521 --- /dev/null +++ b/9, 10 лаб/1, 2, 3, 5 лаб 9/5 лаб 9.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.11.35222.181 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "5 лаб 9", "5 лаб 9\5 лаб 9.vcxproj", "{12150A36-9D7F-4F8E-A3A9-745FF77BA796}" +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 + {12150A36-9D7F-4F8E-A3A9-745FF77BA796}.Debug|x64.ActiveCfg = Debug|x64 + {12150A36-9D7F-4F8E-A3A9-745FF77BA796}.Debug|x64.Build.0 = Debug|x64 + {12150A36-9D7F-4F8E-A3A9-745FF77BA796}.Debug|x86.ActiveCfg = Debug|Win32 + {12150A36-9D7F-4F8E-A3A9-745FF77BA796}.Debug|x86.Build.0 = Debug|Win32 + {12150A36-9D7F-4F8E-A3A9-745FF77BA796}.Release|x64.ActiveCfg = Release|x64 + {12150A36-9D7F-4F8E-A3A9-745FF77BA796}.Release|x64.Build.0 = Release|x64 + {12150A36-9D7F-4F8E-A3A9-745FF77BA796}.Release|x86.ActiveCfg = Release|Win32 + {12150A36-9D7F-4F8E-A3A9-745FF77BA796}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {115C7EB3-B988-40B7-ADEE-82FBA1102BC5} + EndGlobalSection +EndGlobal diff --git a/9, 10 лаб/1, 2, 3, 5 лаб 9/5 лаб 9/5 лаб 9.vcxproj b/9, 10 лаб/1, 2, 3, 5 лаб 9/5 лаб 9/5 лаб 9.vcxproj new file mode 100644 index 0000000..53a064b --- /dev/null +++ b/9, 10 лаб/1, 2, 3, 5 лаб 9/5 лаб 9/5 лаб 9.vcxproj @@ -0,0 +1,135 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 17.0 + Win32Proj + {12150a36-9d7f-4f8e-a3a9-745ff77ba796} + My5лаб9 + 10.0 + + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + + + + + + + + + + + + + + + + + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/9, 10 лаб/1, 2, 3, 5 лаб 9/5 лаб 9/5 лаб 9.vcxproj.filters b/9, 10 лаб/1, 2, 3, 5 лаб 9/5 лаб 9/5 лаб 9.vcxproj.filters new file mode 100644 index 0000000..3f0db78 --- /dev/null +++ b/9, 10 лаб/1, 2, 3, 5 лаб 9/5 лаб 9/5 лаб 9.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {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/9, 10 лаб/1, 2, 3, 5 лаб 9/5 лаб 9/FileName.cpp b/9, 10 лаб/1, 2, 3, 5 лаб 9/5 лаб 9/FileName.cpp new file mode 100644 index 0000000..7815bed --- /dev/null +++ b/9, 10 лаб/1, 2, 3, 5 лаб 9/5 лаб 9/FileName.cpp @@ -0,0 +1,89 @@ +#include +#include + +void print1_10() { + int a = 1; + do { + printf("%d ", a); + a += 1; + } while (a <= 10); +} + +void print10_1() { + int a = 10; + do { + printf("%d ", a); + a -= 1; + } while (a >= 1); +} + +void print5() { + int a = 1; + int i = 1; + do { + printf("%d ", a); + a += 2; + i += 1; + } while (i <= 5); +} +void print100_10while() { + int a = 100; + while (a >= 10) { + printf("%d ", a); + a -= 10; + } +} +void print1000_100while() { + int a = 1000; + while (a >= 100) { + printf("%d ", a); + a -= 100; + } +} +void print1000_0while() { + int a = 1000; + while (a >= 0) { + printf("%d ", a); + a -= 6; + } +} +void main() { + SetConsoleCP(1251); + SetConsoleOutputCP(1251); + int n; + + do { + printf("\n"); + printf("\n"); + printf(" :\n"); + printf("1: 1 10\n"); + printf("2: 10 1\n"); + printf("3: 5 1\n"); + printf("11: 100 90 80 ... 10( WHILE)\n"); + printf("12: 1000 900 800 ... 100( WHILE)\n"); + printf("20: 1000 994 988 ( WHILE)\n"); + printf("\n"); + printf("0: \n"); + scanf_s("%d", &n); + switch (n) { + case 1: + print1_10(); + break; + case 2: + print10_1(); + break; + case 3: + print5(); + break; + case 11: + print100_10while(); + break; + case 12: + print1000_100while(); + break; + case 20: + print1000_0while(); + break; + } + } while (n != 0); +}