Интерфейс программы и Обозреватель решений
Рассмотрим интерфейс программы, сосредоточившись на вкладке «Обозреватель решений». Если она недоступна, откройте её через меню «Вид».
«Обозреватель решений» отображает все файлы проекта: файлы кода (заголовочные и исходные), изображения, звуки, текстовые файлы и другие ресурсы. Структура папок обычно включает:
- Папка проекта: содержит все файлы проекта (например, it proger Win App).
- Папка «Ссылки»: хранит подключенные библиотеки (например, одна стандартная библиотека).
- Папка «Внешние зависимости»: аналогична папке «Ссылки».
- Папка «Исходные файлы»: содержит файлы .cpp с кодом.
- Папка «Файлы заголовков»: содержит файлы .h с описанием классов (например, формы) без реализации функционала.
- Папка «Файлы ресурсов»: хранит ресурсы приложения (изображения, видео, аудио и др.).
Создание нового окна (формы)
Для создания нового окна (WinForm):
- Щелкните правой кнопкой мыши на папке «Файлы заголовков» (или на названии проекта).
- Выберите «Добавить» -> «Создать элемент».
- Выберите «Visual C++» -> «IP» (пользовательский интерфейс) -> «Форма Windows Forms».
- Укажите имя файла (например, myform.h). Расширение .h обязательно.
- Нажмите «Добавить».
Возможна ошибка – это нормально. После добавления окна появятся:
- Дополнительные ссылки и библиотеки во «Внешних зависимостях» (количество зависит от версии ОС).
- Два файла: заголовочный файл (.h) и исходный файл (.cpp). В C++ для описания класса часто используются два файла: в заголовочном – структура класса, в исходном – реализация. В WinForms часто описание и реализация находятся в одном заголовочном файле.
Файл .cpp обычно содержит только подключение заголовочного файла. В заголовочном файле описывается окно и его элементы (кнопки, надписи, свойства). Элементы можно описывать кодом или через графический редактор.
Анализ кода созданной формы
Рассмотрим код сгенерированного заголовочного файла:
- Подключение пространств имён: System, System::ComponentModel и др. Необходимы для использования различных классов.
- Класс формы: имя класса совпадает с именем файла (например, myform). Он наследуется от базового класса Form, предоставляющего стандартные функции для работы с окном.
- Конструктор: выполняется при запуске окна. Вызывает метод InitializeComponent().
- Деструктор: проверяет наличие компонентов и очищает память.
- InitializeComponent(): инициализирует компоненты формы (размеры, название, отступы, AutoScaleMode и др.).
Добавление основной функции main()
Для запуска проекта добавьте функцию main() в файл .cpp:
#include <iostream>
#include <System/System.hpp>
#include <System/Windows/Forms/Application.hpp>
#include <System/Windows/Forms/Form.hpp>
namespace itproger {
// ... ваш код ...
}
using namespace System;
using namespace System::Windows::Forms;
[STAThreadAttribute]
int main(array<String^>^ args) {
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false);
itproger::myform form;
Application::Run(%form);
return 0;
}
Укажите main() как точку входа в свойствах проекта (Компоновщик -> Дополнительно -> Точка входа). Рекомендуется выбрать Windows subsystem в настройках компоновщика для запуска приложения без консоли.
Графический редактор
Для работы с графическим редактором перезапустите Visual Studio. Дважды щелкнув на файле myform.h, откройте графический редактор. В нём можно изменять размеры формы, добавлять элементы (кнопки, надписи и др.) с помощью панели элементов (меню «Вид» -> «Панель элементов»).
В этом уроке создано базовое окно WinForms, настроены его параметры и запущен проект. В последующих уроках продолжим работу с графическим редактором, добавим обработчики событий и создадим более сложный интерфейс.