Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчёт Герман.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
8.21 Mб
Скачать

Лабораторная работа № 1. Простейшее приложение

Цель: Познакомиться с WinAPI. Создать простейшие приложения

Краткие теоретические сведения:

WinMain – главная функция.

Функция имеет следующий прототип:

int MessageBox(HWNDhWnd, LPCTSTRlpText,LPCTSTRlpCaption, UINTuType);

Параметры:

hWnd – дескриптор родительского окна. Он принимает значение NULL, если родительского окна нет.

lpText – указатель на строку, содержащую текст сообщения.

lpCaption — указатель на строку, содержащую текст заголовка диалогового окна.

uType – параметр содержит комбинацию флагов,задающих количество и типы кнопок в диалоговом окне, а также наличие заданной пиктограммы.

MessageBox – функция создания окна.

Ellipse – функция для создания эллипса, другие функции для создания простейших геометрических фигур можно изучить с помощью специализированного справочника.

Задание:

1.1 Наипростейшая программа Windows. В файле <winuser.h> найдите константы (MB_), задающие кнопки в диалоговом окне. Используйте их. Учимся выводить информацию через окно сообщений: задайте целочисленный параметр в командной строке. Выведите его с помощью функции MessageBox()(sprintf()).

1.2 Простейшее Windows-приложение. В файле <winuser.h> найдите константы (IDC_), которые являются идентификаторами стандартных курсоров. Используйте их. Второй параметр функции ShowWindow(). Константы с префиксом SW_.

Нарисуйте красным цветом прямоугольник, границы которого находятся на расстоянии 20 пикселей от границ клиентской области окна.

Нарисуйте синим цветом эллипс, вписанный в клиентскую область окна.

Нарисуйте красным цветом эллипс, вписанный в прямоугольник. Сделайте заливку внутреннего эллипса зеленым цветом.

Проведите две диагонали для клиентской области.

1.3 Выведите текст (названия углов) в четырех углах клиентской области, а в центре – свою фамилию.

Анализ реализации алгоритма

Для выполнения первого задания данной лабораторной работы я использовала константы (MB_) для создания кнопок в диалоговом окне и функции MessageBox() и sprintf() для вывода целочисленных констант.

Исходный код:

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR LpCmdLine, int nCmdShow)

{

MessageBox (NULL, "Hello!", "Caption", MB_OK);

MessageBox (NULL, "Do you want to delete?", "Caption", MB_YESNO | MB_ICONQUESTION);

MessageBox (NULL, "Error!!!", "Caption", MB_RETRYCANCEL | MB_ICONERROR);

char buffer [50];

int a;

cin >> a;

sprintf(buffer, "%d", a);

MessageBox (NULL, buffer, "Caption", MB_OK);

return 0;

}

Скриншоты реализации можно просмотреть в приложении 2.

Для выполнения второго задания я использовала функции CreatePen() и CreateSolidBrush() для создания перьев и кистей и функции GetClientRect для получения клиентской области; Ellipse() и Rectangle() для прорисовки эллипса и прямоугольника; функции MoveToEx() и LineTo() для прорисовки диагоналей; функцию TextOut() для вывода текста.

Исходный код:

RECT cRect;

GetClientRect(hwnd, &cRect);

Ellipse(hDC,0,0,cxClient,cyClient); //эллипс

Rectangle(hDC,20,20,cxClient-20,cyClient-20);//прямоугольник

MoveToEx(hDC, pt[0].x, pt[0].y, NULL);

LineTo(hDC, pt[1].x, pt[1].y);

TextOut(hDC, cxClient/2 - 45, cyClient/2, "Герман Полина", 13);

Скриншоты реализации можно просмотреть в приложении 2.

Выводы: Познакомилась с работой Win API, научилась создавать простейшие приложения. Познакомилась с функциями MessageBox()(sprintf()), GetClientRect(), Ellipse() и др.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]