C++ WinForms: Создание Windows-форм и работа с Обозревателем решений

Интерфейс программы и Обозреватель решений

Рассмотрим интерфейс программы, сосредоточившись на вкладке «Обозреватель решений». Если она недоступна, откройте её через меню «Вид».

«Обозреватель решений» отображает все файлы проекта: файлы кода (заголовочные и исходные), изображения, звуки, текстовые файлы и другие ресурсы. Структура папок обычно включает:

  • Папка проекта: содержит все файлы проекта (например, it proger Win App).
  • Папка «Ссылки»: хранит подключенные библиотеки (например, одна стандартная библиотека).
  • Папка «Внешние зависимости»: аналогична папке «Ссылки».
  • Папка «Исходные файлы»: содержит файлы .cpp с кодом.
  • Папка «Файлы заголовков»: содержит файлы .h с описанием классов (например, формы) без реализации функционала.
  • Папка «Файлы ресурсов»: хранит ресурсы приложения (изображения, видео, аудио и др.).

Создание нового окна (формы)

Для создания нового окна (WinForm):

  1. Щелкните правой кнопкой мыши на папке «Файлы заголовков» (или на названии проекта).
  2. Выберите «Добавить» -> «Создать элемент».
  3. Выберите «Visual C++» -> «IP» (пользовательский интерфейс) -> «Форма Windows Forms».
  4. Укажите имя файла (например, myform.h). Расширение .h обязательно.
  5. Нажмите «Добавить».

Возможна ошибка – это нормально. После добавления окна появятся:

  • Дополнительные ссылки и библиотеки во «Внешних зависимостях» (количество зависит от версии ОС).
  • Два файла: заголовочный файл (.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, настроены его параметры и запущен проект. В последующих уроках продолжим работу с графическим редактором, добавим обработчики событий и создадим более сложный интерфейс.

Что будем искать? Например,программа