Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Контрольна робота з «Системне програмування»

Автор:   •  Декабрь 1, 2021  •  Контрольная работа  •  5,217 Слов (21 Страниц)  •  289 Просмотры

Страница 1 из 21

Міністерство освіти та науки України

Контрольна робота

Варіант №1

з дисципліни: «Системне програмування»

Харків, 2020

Варіант 1

                Завдання 1 Написати з використанням функцій API програму, що створює віконне додаток Windows. Програма повинна містити реєстрацію класу вікна, процедуру створення вікна, віконну процедуру і цикл обробки повідомлень. Програма повинна виводити в клієнтської області вікна прізвище, ім'я, групу студента, який виконав завдання і перемальовувати її при обробці повідомлення WM_PAINT.

Стиль класу: вирівнювання клієнтської області по горизонталі;

Тип завантажується іконки: IDI_APPLICATION,

Тип завантажується курсору: IDC_ARROW,

Колір фону вікна: БІЛИЙ,

Ім'я класу вікна: ім'я студента (англійською мовою).        

Стиль вікна: а) вікно має заголовок і обрамляє рамку; б) WS_OVERLAPPEDWINDOW.                

Позиція вікна: за замовчуванням.

Код програми:

#include <windows.h> // підключення бібліотеки з функціями API

// Глобальні змінні:

HINSTANCE hInst;         //Дескриптор програми        

LPCTSTR szWindowClass = "SabadaAzarenko";

LPCTSTR szTitle = "ПЕРША ПРОГРАМА";

// Попередній опис функцій

ATOM MyRegisterClass(HINSTANCE hInstance);

BOOL InitInstance(HINSTANCE, int);

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

// Основна програма

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine,

        int nCmdShow)

{

        MSG msg;

        // Реєстрація класу вікна

        MyRegisterClass(hInstance);

        // Створення вікна програми

        if (!InitInstance(hInstance, nCmdShow))

        {

                return FALSE;

        }

        // Цикл обробки повідомлень

        while (GetMessage(&msg, NULL, 0, 0))

        {

                TranslateMessage(&msg);

                DispatchMessage(&msg);

        }

        return msg.wParam;

}

ATOM MyRegisterClass(HINSTANCE hInstance)

{

        WNDCLASSEX wcex;

        wcex.cbSize = sizeof(WNDCLASSEX);

        wcex.style = CS_HREDRAW;                 //стиль вікна

        wcex.lpfnWndProc = (WNDPROC)WndProc;                 //віконна процедура

        wcex.cbClsExtra = 0;

        wcex.cbWndExtra = 0;

        wcex.hInstance = hInstance;                         //дескриптор програми

        wcex.hIcon = LoadIcon(NULL, IDI_APPLICATION);                 //визначення іконки

        wcex.hCursor = LoadCursor(NULL, IDC_ARROW);         //визначення курсору

        wcex.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); //установка фону

        wcex.lpszMenuName = NULL;                                 //визначення меню

        wcex.lpszClassName = szWindowClass;                 //ім’я класу

        wcex.hIconSm = NULL;

        return RegisterClassEx(&wcex);                         //реєстрація класу вікна

}

// FUNCTION: InitInstance (HANDLE, int)

// Створює вікно програми і зберігає дескриптор програми в змінній hInst

BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)

{

        HWND hWnd;

        hInst = hInstance; //зберігає дескриптор додатка в змінній hInst

        hWnd = CreateWindow(szWindowClass,         // ім’я класу вікна

                szTitle,                                 // назва програми

...

Скачать:   txt (18.5 Kb)   pdf (199.4 Kb)   docx (110.1 Kb)  
Продолжить читать еще 20 страниц(ы) »
Доступно только на Essays.club