Программирование интерфейса пользователя средствами WinAPI
Автор: Rodion Surnin • Июнь 7, 2023 • Практическая работа • 3,153 Слов (13 Страниц) • 153 Просмотры
Министерство науки и высшего образования Российской Федерации
ФГБОУ ВО «Марийский государственный университет»
Институт цифровых технологий
Физико-математический факультет
Кафедра прикладной математики и информатики
Отчет по дисциплине «Системное программирование»
Практическая работа №1
«Программирование интерфейса пользователя средствами WinAPI»
Выполнил студент гр. ОС-37
Сурнин Р. А.
Проверил: ст. преподаватель
Виноградов В. О.
Йошкар-Ола
2023
Содержание
Введение 3
1. Теоретическая часть 4
1.1. Создание и программирование кнопок 4
1.2. Создание и программирование меню 5
1.3. Создание и программирование строки состояния 5
2. Практическая часть 7
3. Описание программного кода 7
Заключение 10
Приложение А 11
Приложение Б 19
Введение
Данная практическая работа направлена на изучение пользовательского интерфейса и его компонентов. WinAPI — это мощный набор функций и процедур, используемых для разработки приложений Windows. Одним из основных компонентов WinAPI является пользовательский интерфейс (User interface), который включает кнопки, меню и строки состояния.
Теоретическая часть
Необходимо создать и запрограммировать пользовательский интерфейс, состоящий из кнопок, меню и строки состояния средствами WinAPI. Рассмотрим необходимые компоненты, которые будем использовать при создании интерфейса:
- Библиотека windows.h. В ней содержится весь необходимый функционал для создания и программирования элементов интерфейса.
- Функция WinMain. Она служит точкой входа в графическое приложения. В ней опишем процесс создания основного окна приложения.
- Функция RegClass. В ней опишем структуру класса окна.
- Функция обратного вызова WndProc. Это функция, переданная в другие функции в качестве аргумента, которые затем вызываются по завершению какого-либо действия. В теле данной функции будут описаны основные части нашей программы, такие как: создание кнопок, меню, строки состояния, а также обработчики событий, которые будут происходить при взаимодействии с тем или иным элементом интерфейса.
- Создание и программирование кнопок
Кнопки являются одним из наиболее распространенных элементов пользовательского интерфейса в приложениях Windows. Они используются для запуска действий или событий при нажатии пользователем.
Далее рассмотрим необходимые компоненты, которые будем использовать для создания и программирования кнопок.
- Static HWND button_1, button_2, button_3. Это статичные дескрипторы к кнопкам, которые мы собираемся создать. Static сообщает о том, что мы хотим чтобы переменная оставалась неизменной при каждом вызове функции.
- Обработчик WM_CREATE. Необходим для создания элементов интерфейса.
- Обработчик WM_COMMAND. В нем будет описано действие, которое происходит при нажатии на кнопки.
- Функция CreateWindowA. При помощи данной функции будет происходить создание кнопок класса “BUTTON”. Эта функция включает в себя набор стилей окна.
- Функция MessageBox. Эта функция будет выводить в диалоговом окне сообщения при нажатии на кнопки.
- Создание и программирование меню
Меню состоит из перечня пунктов меню. Выбор пункта меню открывает подменю или принуждает прикладную программу выполнить команду.
Далее рассмотрим необходимые компоненты, которые будем использовать для создания и программирования меню.
- Обработчик WM_CREATE. Необходим для создания элементов интерфейса.
- Обработчик WM_COMMAND. В нем будет описано действие, которое происходит при нажатии на тот или иной пункт меню.
- HMENU. Это дескриптор меню.
- Функции CreateMenu и CreatePopupMenu для создания пустых меню и выпадающего списка меню соответственно.
- Функция AppendMenu. Добавляет в конец заданной строки меню, "выпадающего" меню, подменю или контекстного меню новый пункт.
- Функция SetMenu. Назначает новое меню указанному окну.
- Функция MessageBox. Эта функция будет выводить в диалоговом окне сообщения при нажатии на тот или иной пункт выпадающего меню.
- Создание и программирование строки состояния
Строка состояния используется для отображения пользователю информации о статусе, такой как текущее состояние приложения или ход выполнения задачи.
Далее рассмотрим необходимые компоненты, которые будем использовать для создания и программирования строки состояния.
- Библиотека commctrl.h. Необходима для создания строки состояния, при помощи использования функции CreateStatusWindow.
- #pragma comment(lib,”comctl32.lib”). Подключение библиотеки comctl32. Она необходима для работы с функциями строки состояния.
- #define ID_STATUS 200. Это макроопределение идентификатора строки состояния.
- Static HWND hStatus. Это статичный дескриптор для строки состояния.
- Static int pParts [3]. Определяем количество частей в строке состояния.
- Static short cx. Это вспомогательная переменная для вычисления координат.
- Функция SendMessage посылает сообщение с указанием количества частей и их длин.
- Функция CreateStatusWindow. Необходима для создания строки состояния.
- Функция MoveWindow. Необходима для того, чтобы перемещать строку состояние вслед за главным окном при изменении размеров.
- Практическая часть
В рамках практической работы №1 создадим несколько кнопок, строку состояния и меню, состоящее из трех пунктов, каждый из которых содержат подменю с тремя выпадающими пунктами. Листинг разработанной программы и демонстрация работы программы представлены в приложениях А, Б.
...