003 – Створення додатку типу Windows Forms Application в MS Visual Studio. Огляд основних файлів проекту

Створення додатку типу Windows Forms Application в MS Visual Studio – C++. Огляд основних файлів проекту

У даній темі розглянуто особливості створення додатку типу Windows Forms Application з підтримкою мови C++. Такий тип додатку підтримує усі переваги технології .NET Framework.

Виконання

1. Завантажити Microsoft Visual Studio

У результаті, буде створене вікно з активною вкладкою Start Page (рисунок 1).

05_02_00_003_01_Рисунок 1. Вікно Microsoft Visual Studio

2. Створення додатку типу Windows Forms Application з підтримкою C++

Щоб створити новий проект (рішення) на мові C++, потрібно вибрати послідовність команд (рис. 2):

File -> New Project...

Система Microsoft Visual Studio пропонує різні види шаблонів додатків для програмування мовою C++.

05_02_00_003_02_Рисунок 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) може об’єднувати в собі декілька проектів. У нашому випадку ім’я рішення залишаємо таким самим як і ім’я проекту.

05_02_00_003_03_Рисунок 3. Вікно “New Project” створення нового проекту

3. Основні елементи віконного інтерфейсу для роботи з програмою.

Після вибору “ОК” в попередньому вікні “New Project“, система Microsoft Visual Studio створить увесь необхідний код для роботи додатку типу Windows Forms Application.

У результаті вікно Microsoft Visual Studio прийме вигляд як показано на рисунку 4.

У вікні, в центрі відображається основна форма додатку. На цій формі можна розміщувати компоненти. Компоненти розміщуються на панелі Toolbox (ліва частина екрану).

Властивості форми або компонента відображаються в утиліті Solution Explorer (права частина екрану). Змінюючи ці властивості, можна впливати на вигляд форми, поведінку форми, реалізовувати обробники подій форми та інше.

05_02_00_003_04_Рисунок 4. Основні елементи вікна додатку

4. Виклик режиму введення коду

На даний момент активним є режим проектування форми. Щоб перейти в режим набору тексту програми, потрібно викликати команду Code з меню View (рисунок 5):

View->Code

05_02_00_003_05_

Рисунок 5. Команда переходу в режим набору тексту програми

Інший варіант виклику команди переходу в режим набору тексту, це клік на відповідній кнопці в Solution Explorer (рисунок 6).

05_02_00_003_06_Рисунок 6. Кнопка переходу в режим набору тексту програми

У результаті, відобразиться текст програми.

05_02_00_003_07_Рисунок 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).

05_02_00_003_08_Рисунок 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).