diff --git a/Лаб 6..cpp b/Лаб 6..cpp deleted file mode 100644 index 771140f..0000000 --- a/Лаб 6..cpp +++ /dev/null @@ -1,272 +0,0 @@ -// WindowsProject24.cpp : Определяет точку входа для приложения. -// - -#include "framework.h" -#include "WindowsProject24.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_WINDOWSPROJECT24, szWindowClass, MAX_LOADSTRING); - MyRegisterClass(hInstance); - - // Выполнить инициализацию приложения: - if (!InitInstance (hInstance, nCmdShow)) - { - return FALSE; - } - - HACCEL hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_WINDOWSPROJECT24)); - - 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_WINDOWSPROJECT24)); - wcex.hCursor = LoadCursor(nullptr, IDC_ARROW); - wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); - wcex.lpszMenuName = MAKEINTRESOURCEW(IDC_WINDOWSPROJECT24); - 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 - отправить сообщение о выходе и вернуться -// -// -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... - - HPEN hPen = CreatePen(PS_SOLID, 3, RGB(8, 19, 225)); - SelectObject(hdc, hPen); - - HBRUSH hBrush; - hBrush = CreateSolidBrush(RGB(181, 199, 35)); - SelectObject(hdc, hBrush); - - //Крыша - MoveToEx(hdc, 450, 200, NULL); - LineTo(hdc, 300, 350); - LineTo(hdc, 600, 350); - LineTo(hdc, 450, 200); - - //Дом - MoveToEx(hdc, 300, 350, NULL); - LineTo(hdc, 300, 650); - LineTo(hdc, 600, 650); - LineTo(hdc, 600, 350); - - //Окно - MoveToEx(hdc, 350, 400, NULL); - LineTo(hdc, 350, 500); - LineTo(hdc, 450, 500); - LineTo(hdc, 450, 400); - LineTo(hdc, 350, 400); - - //Дверь - MoveToEx(hdc, 500, 650, NULL); - LineTo(hdc, 500, 450); - LineTo(hdc, 600, 450); - - //Ручка - MoveToEx(hdc, 525, 525, NULL); - LineTo(hdc, 525, 575); - - hPen = CreatePen(PS_SOLID, 5, RGB(55, 122, 48)); - SelectObject(hdc, hPen); - int x1 = 0, y1 = 550; - int x2 = 100, y2 = 650; - do { - MoveToEx(hdc, x1, y1, NULL); - LineTo(hdc, x2, y2); - DeleteObject(hPen); - x1 += 10; - } while (x1 <= 270); - - hPen = CreatePen(PS_SOLID, 2, RGB(0, 255, 255)); - SelectObject(hdc, hPen); - int x5 = 150, y5 = 250; - int x6 = 250, y6 = 250; - do { - MoveToEx(hdc, x5, y5, NULL); - LineTo(hdc, x6, y6); - x5 += 25; - y5 -= 50; - } while (x5 <= 100); - - x5 = 250; - y5 = 100; - do { - MoveToEx(hdc, x5, y5, NULL); - LineTo(hdc, x6, y6); - DeleteObject(hPen); - x5 += 25; - y5 += 50; - } while (x5 <= 200); - - - hPen = CreatePen(PS_SOLID, 5, RGB(255, 0, 0)); - SelectObject(hdc, hPen); - int x9 = 800, y9 = 0; - int x10 = 800, y10 = 150; - do { - MoveToEx(hdc, x9, y9, NULL); - LineTo(hdc, x10, y10); - DeleteObject(hPen); - x9 += 40; - x10 += 40; - } while (x9 <= 250); - - hPen = CreatePen(PS_SOLID, 1, RGB(0, 255, 0)); - SelectObject(hdc, hPen); - int x11 = 625, y11 = 625; - int x12 = 625, y12 = 650; - do { - MoveToEx(hdc, x11, y11, NULL); - LineTo(hdc, x12, y12); - DeleteObject(hPen); - x11 += 15; - } while (x11 <= 20); - - 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; -}