Почему при создании формы WinForms она имеет именно такое оформление файлов?

Я думал, что в .h файле следует только объявлять различные имена, которые будут использоваться в других файлах, а уже в .cpp файле их определять, например как тут:

//MyForm1.h
#pragma once

void CreateWindowMyForm1();

namespace Project3 {

    using namespace System;
    using namespace System::ComponentModel;
    using namespace System::Collections;
    using namespace System::Windows::Forms;
    using namespace System::Data;
    using namespace System::Drawing;

    public ref class MyForm1 : public System::Windows::Forms::Form
    {
    public:
        MyForm1(void);

    protected:
        ~MyForm1();

    private:
        System::ComponentModel::Container ^components;

#pragma region Windows Form Designer generated code
        void InitializeComponent(void);
#pragma endregion
    };
}
//MyForm1.cpp
#include "MyForm1.h"

using namespace System;
using namespace Windows::Forms;

void CreateWindowMyForm1()
{
    Project3::MyForm1 form;
    Application::Run(%form);
}

Project3::MyForm1::MyForm1(void)
{
    InitializeComponent();
}

Project3::MyForm1::~MyForm1()
{
    if (components)
    {
        delete components;
    }
}

void Project3::MyForm1::InitializeComponent(void)
{
    this->components = gcnew System::ComponentModel::Container();
    this->Size = System::Drawing::Size(300, 300);
    this->Text = L"MyForm1";
    this->Padding = System::Windows::Forms::Padding(0);
    this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
}
//main.cpp
#include "MyForm1.h"

int main()
{
    CreateWindowMyForm1();
    return 0;
}

Этот код работает и, как по мне, выглядит куда приятнее, чем нагромождение всех функций для каждой кнопки в файле MyForm1.h. Может быть существуют какие-то правила оформления форм, которые объясняют, почему стоит писать код не так, или хотя бы почему все функции для каждой кнопки по умолчанию создаются в хэдере?


Ответы (0 шт):