Створення додатку типу 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++
Щоб створити новий проект (рішення) на мові C++, потрібно вибрати послідовність команд (рис. 2):
File -> New Project...
Система Microsoft Visual Studio пропонує різні види шаблонів додатків для програмування мовою C++.
Рисунок 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).
Рисунок 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++, що генеруються з використанням майстра додатків. В ньому міститься інформація про версію 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).