Visual Studio .NET и формы. Демонстрация Windows Forms.
Теперь создадим исходный файл Forml.cpp в проекте BankGuiPort и перенесем (с помощью команд сору (копировать) и paste (вставить)) код С# из исходного файла Forml.cs проекта BankGui.
Перенесите все строки кода из файла Forml.cs проекта BankGui в файл Forml.cpp проекта BankGuiPort. При таком переносе кода могут возникнуть проблемы и непредвиденные ситуации. Эти проблемы не будут рассмотрены в нашей книге и вам придется ознакомиться с ними самостоятельно, если вы и в дальнейшем захотите выполнять подобный перенос кода. Итак, откройте оба проекта – BankGui на С# и BankGuiPort на C++ – в двух копиях Visual Studio .NET и визуально сравните исходные файлы Forml.cs и Forml.cpp, чтобы получить представление о подробностях переноса кода.
//Form1.cpp #using <mscorlib.dll> #using <System.dll> #using <System.Drawing.dll> #using <Systern.Windows.Forms.dll> using namespace System; // использование пространства имен Система; namespace BankGui // пространство имен BankGui { _gc class Forml: public System::Windows::Forms::Form // класс сборщика мусора Forml: общедоступная Система:: // Windows:: Формы:: Форма { private: // частный System::Windows: Forms::Label *label1; System::Windows: Forms::Label *labe!2; System::Windows: Forms::TextBox *txtAmount; System::Windows: Forms::TextBox *txtBalance; System::Windows: Forms::Button *cmdDeposit; // Кнопка System::Windows: Forms::Button *cmdWithdraw; // Кнопка System::ComponentModel::Container *components; // Контейнер public: Form1 () { components =0; // компоненты InitializeComponent(); txtAmount › Text = "25"; // Текст txtBalance › Text = "100"; // Текст } private: // частный void InitializeComponent() { cmdWithdraw = new System::Windows::Forms::Button; // Кнопка cmdDeposit = new System::Windows::Forms::Button; // Кнопка txtBalance = new System::Windows::Forms::TextBox; txtAmount = new System::Windows::Forms::TextBox; labell = new System::Windows::Forms::Label; // Надпись Iabel2 = new System:: Windows:: Forms:-.Label; // Надпись SuspendLayout(); // // cmdWithdraw // cmdWithdraw › Location = // Местоположение * _nogc new System::Drawing::Point(152, 144); // Точка cmdWithdraw › Name = "cmdWithdraw"; // Имя cmdWithdraw › TabIndex = 2; cmdWithdraw › Text = "Withdraw"; // Текст = "Снять" cmdWithdraw › Click += // Щелчок new System::EventHandler(this, cmdWithdraw_Click); // // Form1 // AutoScaleBaseSize = * _nogc new System::Drawing::Size(5, 13); // Размер ClientSize = * _nogc new System::Drawing::Size(280, 189); // Размер System::Windows::Forms::Control* pltems[] = { cmdDeposit, txtAmount, label1, label2, txtBalance, cmdWithdraw}; Controls › AddRange(pltems); "Name = "Forml"; // Имя Text = "Forml"; // Текст Load += new System::EventHandler(this, Forml_Load); ResumeLayout(false); // ложь } void Forml_Load( Object *sender, System::EventArgs *e) { } void cmdWithdraw_Click( Object *sender, System::EventArgs *e) { int amount = Convert::ToInt32(txtAmount › Text); // преобразование текста int balance = Convert::ToInt32(txtBalance › Text); // преобразование текста balance -= amount; // – количество txtBalance › Text = Convert::ToString(balance); // преобразование в текст } public: [STAThread] static void Main() { System::Windows::Forms::Application::Run(new Forml); // Приложение:: Выполнить (новая Forml); } }; }