Почему при создании формы 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. Может быть существуют какие-то правила оформления форм, которые объясняют, почему стоит писать код не так, или хотя бы почему все функции для каждой кнопки по умолчанию создаются в хэдере?