//// лаба 6.cpp : Определяет точку входа для приложения. //// // //#include "framework.h" //#include "лаба 6.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_MY6, szWindowClass, MAX_LOADSTRING); // MyRegisterClass(hInstance); // // // Выполнить инициализацию приложения: // if (!InitInstance (hInstance, nCmdShow)) // { // return FALSE; // } // // HACCEL hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_MY6)); // // 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_MY6)); // wcex.hCursor = LoadCursor(nullptr, IDC_ARROW); // wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); // wcex.lpszMenuName = MAKEINTRESOURCEW(IDC_MY6); // 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... // int x1 = 500, y1 = 160; // int x2 = 600, y2 = 260; // do { // MoveToEx(hdc, x1, y1, NULL); // LineTo(hdc, x2, y2); // x1 += 20; // } while (x1 <= 900); // // x1 = 0, y1 = 250; // 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); // // x1 = 150, y1 = 0; // x2 = 150, y2 = 100; // do { // MoveToEx(hdc, x1, y1, NULL); // LineTo(hdc, x2, y2); // x1 += 5; // x2 += 5; // } while (x1 <= 450); // // HPEN hPen; // hPen = CreatePen(PS_SOLID, 5, RGB(185, 127, 87)); // SelectObject(hdc, hPen); // // x1 = 150, y1 = 500; // x2 = 150, y2 = 600; // do { // MoveToEx(hdc, x1, y1, NULL); // LineTo(hdc, x2, y2); // x1 += 25; // x2 += 25; // } while (x1 <= 650); // hPen = CreatePen(PS_SOLID, 5, RGB(0, 0, 0)); // SelectObject(hdc, hPen); // // hPen = CreatePen(PS_SOLID, 5, RGB(0, 255, 0)); // SelectObject(hdc, hPen); // // x1 = 150, y1 = 650; // x2 = 150, y2 = 700; // do { // MoveToEx(hdc, x1, y1, NULL); // LineTo(hdc, x2, y2); // x1 += 15; // x2 += 15; // } while (x1 <= 650); // hPen = CreatePen(PS_SOLID, 5, RGB(0, 0, 0)); // SelectObject(hdc, hPen); // // // //дом // MoveToEx(hdc, 337, 220, NULL); // LineTo(hdc, 465, 335); // LineTo(hdc, 213, 335); // LineTo(hdc, 337, 220); // LineTo(hdc, 465, 335); // LineTo(hdc, 465, 472); // LineTo(hdc, 586, 473); // LineTo(hdc, 586, 457); // LineTo(hdc, 530, 457); // LineTo(hdc, 530, 442); // LineTo(hdc, 465, 441); // LineTo(hdc, 465, 472); // LineTo(hdc, 213, 472); // LineTo(hdc, 213, 335); // // MoveToEx(hdc, 293, 378, NULL); // LineTo(hdc, 366, 378); // LineTo(hdc, 366, 432); // LineTo(hdc, 293, 432); // LineTo(hdc, 293, 378); // LineTo(hdc, 330, 378); // LineTo(hdc, 329, 432); // LineTo(hdc, 329, 403); // LineTo(hdc, 292, 403); // 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; //}