Создание приложения типа Windows Forms Application в MS Visual Studio — C++. Обзор основных файлов проекта
В данной теме рассмотрены особенности создания приложения типа Windows Forms Application с поддержкой языка C++. Такой тип приложения поддерживает все преимущества технологии .NET Framework.
Выполнение
1. Загрузить Microsoft Visual Studio.
В результате будет создано окно с активной вкладкой Start Page (рисунок 1).
Рисунок 1. Окно Microsoft Visual Studio
2. Создание приложения типа Windows Forms Application
Чтобы создать новый проект (решение) на языке C++, нужно выбрать последовательность команд (рис. 2):
File -> New Project...
Система Microsoft Visual Studio предлагает разные виды шаблонов приложения для программирования на языке C++ (рис. 2).
Рисунок 2. Вызов команды создания нового проекта
В результате откроется окно «New Project» (рисунок 3), в котором нужно выбрать шаблон «Visual C++» и тип приложения Windows Forms Application.
В поле «Location:» надо задать путь к папке, в которой будет сохранен проект. В нашем случае задан следующий путь
C:\Programs\CPP
В поле Name задается имя приложения. В нашем случае это имя «MyApp01«.
Если включена опция «Create directory for solution» (создать директорию для решения), то проект будет сохранен в папке
C:\Programs\CPP\MyApp01
В поле «Solution name:» задается имя решения. Решение (solution) может объединять в себе несколько проектов. В нашем случае имя решения остается таким как и имя проекта.
Рисунок 3. Окно «New Project» создания нового проекта
3. Основные элементы оконного интерфейса для работы с программой
После выбора «ОК» в предыдущем окне «New Project«, система Microsoft Visual Studio создаст весь необходимый код для работы приложения типа Windows Forms Application.
В результате окно Microsoft Visual Studio примет вид как показано на рисунке 4.
В окне, в центре отображается основная форма приложения. На этой форме можно размещать компоненты. Компоненты размещаются на панели Toolbox (левая часть экрана).
Свойства формы или компонента отображаются в утилите Solution Explorer (правая часть экрана). Изменяя эти свойства, можно влиять на вид формы, поведение формы, реализовывать обработчики событий формы и прочее.
Рисунок 4. Основные элементы окна приложения
4. Вызов режима ввода кода
На данный момент активным есть режим проектирования формы. Чтобы перейти в режим набора текста программы, нужно вызвать команду Code с меню View (рисунок 5):
View -> Code
Рисунок 5. Команда перехода в режим набора текста программы
Другой вариант вызова команды перехода в режим набора текста, это клик на соответствующей кнопке в Solution Explorer (рисунок 6).
Рисунок 6. Кнопка перехода в режим набора текста программы
В результате отобразится текст программы.
Рисунок 7. Режим просмотра текста программы
5. Текст модуля «Form1.h«
При создании проекта, система Microsoft Visual Studio генерирует программный код, который сохраняется в различных файлах.
Главным файлом, в котором программист создает собственный код программы, есть файл «Form1.h«. Этот файл соответствует главной форме приложения. На главной форме размещаются различные компоненты. С помощью этих компонент реализуется решение конкретной задачи. При создании проекта создается пустая форма (рисунок 6). Кроме главной формы можно создавать другие формы и добавлять их к проекту.
Листинг файла «Form1.h» следующий.
#pragma once namespace MyApp01 { using namespace System; using namespace System::ComponentModel; using namespace System::Collections; using namespace System::Windows::Forms; using namespace System::Data; using namespace System::Drawing; /// <summary> /// Summary for Form1 /// </summary> public ref class Form1 : public System::Windows::Forms::Form { public: Form1(void) { InitializeComponent(); // //TODO: Add the constructor code here // } protected: /// <summary> /// Clean up any resources being used. /// </summary> ~Form1() { if (components) { delete components; } } private: /// <summary> /// Required designer variable. /// </summary> System::ComponentModel::Container ^components; #pragma region Windows Form Designer generated code /// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> void InitializeComponent(void) { this->components = gcnew System::ComponentModel::Container(); this->Size = System::Drawing::Size(300,300); this->Text = L"Form1"; this->Padding = System::Windows::Forms::Padding(0); this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font; } #pragma endregion }; }
Объясним некоторые фрагменты кода в тексте программы.
В вышеприведенном тексте создается пространство имен MyApp01 с помощью оператора
namespace MyApp01 {
...
}
В этом пространстве имен подключаются другие пространства имен из библиотеки .NET Framework:
System System::ComponentModel System::Collections System::Windows::Forms System::Data System::Drawing
В пространстве имен MyApp01 создается класс с именем Form1. Этот класс соответствует главной форме приложения Form1.
Класс содержит конструктор, который вызывает метод
InitializeComponent();
В методе InitializeComponent() создается компонента-форма (переменная components), которая есть контейнером. Это означает, что на форме могут размещаться другие компоненты (кнопки, метки, поля ввода и т.д.). Также в методе InitializeComponent() настраиваются параметры формы: название заголовка, размер (300 * 300 пикселей), шрифт по умолчанию.
Деструктор класса ~Form1() уничтожает форму (переменная components) с помощью оператора delete.
6. Файлы, которые создаются в проекте
После создания проекта типа Windows Forms Application система Microsoft Visual Studio создает несколько файлов.
Рисунок 8. Файлы C++, которые создаются в проекте типа Windows Forms Application
Как было сказано раньше, главным файлом есть файл «Form1.h» (см. п. 5). Также, согласно правилам языка C++, создается файл реализации «MyApp01.cpp«. В этом файле есть главная функция main(). Этот файл содержит код отображающий главную форму.
Листинг файла «MyApp01.cpp» следующий:
// MyApp01.cpp : main project file. #include "stdafx.h" #include "Form1.h" using namespace MyApp01; [STAThreadAttribute] int main(array<System::String ^> ^args) { // Enabling Windows XP visual effects before any controls are created Application::EnableVisualStyles(); Application::SetCompatibleTextRenderingDefault(false); // Create the main window and run it Application::Run(gcnew Form1()); return 0; }
Файл «MyApp01.vcxproj«. Это главный файл проектов на Visual C++, которые генерируются с использованием мастера приложений (Application Wizard). В нем содержится информация о версии Visual C++, в которой сгенерирован файл, информация о платформах, настройках и особенностях (характеристиках) проекта выбранных с помощью мастера приложений (Application Wizard).
Файл «MyApp01.vcxproj.filters«. Это есть файл фильтров для сгенерированных проектов на Visual C++ с использованием мастера приложений (Application Wizard). В нем содержится информация об ассоциации между файлами в вашем проекте и фильтрами. Эта ассоциация используется в интегрированной среде, чтобы показать группирование файлов с одинаковыми расширениями.
Файл «AssemblyInfo.cpp«. Содержит пользовательские атрибуты для модификации данных сборки.
Файли «StdAfx.h» и «StdAfx.cpp«. Они используются для создания файла скомпилированных заголовков (PCH) с именем «MyApp01.pch» и скомпилированных типов названных «StdAfx.obj«.
7. Запуск проекта на выполнение
Для запуска проекта на выполнение используется команда Start Debuggin из меню Debug (клавиши F5).
⇑