Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Описание среды Windows Form




УДК 004

 

 

Рецензент:

доц., к.т.н., Волосатова Тамара Михайловна

 

 

 

 

Рязанова Н.Ю., Тассов К.Л., Филиппов М.В. Программирование на С++ в среде Visual Studio CLR Windows Forms. - М.: МГТУ имени Н.Э. Баумана, 2015,  50 с.

В пособии представлены материалы по программированию в среде Visual Studio CLR Windows Form Applications. Учебное пособие содержит подробное описание визуальной среды программирования CLR Windows Form Application. Демонстрирует на большом числе примеров приемы работы с визуальными компонентами среды. Показывает разные типы компонентов и описывает соответствующие им способы действия. Большое внимание уделено написанию обработчиков событий, реализующих основную функциональности программного обеспечения. Приведены типовые задания и контрольные вопросы.

 

Рекомендовано Учебно-методической комиссией НУК «Информатика и системы управления» МГТУ им. Н.Э. Баумана в качестве электронного учебного издания для студентов первого семестра первого курса факультета РК, изучающих дисциплину «Информатика», и студентов второго курса кафедры «Юриспруденция», изучающих дисциплину «Основы алгоритмизации и программирования».

 

Рязанова Наталья Юрьевна

Тассов Кирилл Леонидович

Филиппов Михаил Владимирович

 

Программирование на С++ в среде Visual Studio CLR Windows Forms

 

© 2015 МГТУ имени Н.Э. Баумана

 

Введение

       Проведение занятий по информатике  для студентов младших курсов , изучающих язык С, предполагает использование среды Windows Form Application, являющейся составной частью Visual Studio C++ . Это мощная система визуального проектирования, предназначенна для создания программ, работающих под управлением операционной системы Windows. В основе Windows Form Application лежит объектно-ориентированный язык C++. Эта среда позволяет разрабатывать приложения любой степени сложности для решения задач различных предметных областей с графическим интерфейсом, выполняемых под управлением ОС Windows. CLR Windows Form Application является средой визуального программирования. Она позволяет разработчику конструировать интерфейс приложения, используя стандартные визуальные компоненты среды.

       Однако, в настоящее время крайне мало литературы на русском языке, посвященной разработке программ в Windows Form Application. Поэтому 1-ый и 2-ой параграфы пособия посвящены рассмотрению особенностей разработки проектов в этой среде и описанию основных ее компонентов. В 3-ем параграфе подробно рассмотрены различные проекты, самостоятельное изучение которых позволит разрабатывать подобные приложения. В 4-ом параграфе приведены темы типовых лабораторных работ, рекомендуемых для закрепления изложенного материала.

Пособие предназначено для студентов 1-ого курса факультета РК (кроме специальности РК-6), групп СМ7-12,13, студентов второго курса факультета РКТ, изучающих дисциплину «Информатика», и для студентов 2-ого курса кафедры «Юриспруденция», изучающих дисциплину «Основы алгоритмизации и программирования». Оно может быть также полезно студентам других специальностей, пожелавшим самостоятельно освоить визуальное программирование на языке С++.

 

 

  1. Создание проекта в среде Windows Form

 

Интегрированная среда CLR разработки программ Windows Form Applicationвходящая всостав Visual Studio 2008 - 2012 – это среда, в которой есть все необходимые инструменты для проектирования, запуска и отладки программ, написанных на языке С++. Она включает в себя средства построения оконного интерфейса приложений, текстовый редактор, отладчик, редактор изображений, средства для работы с базами данных. Таким образом, среда Windows Form Application представляет разработчику достаточно полный набор инструментов для создания широкого спектра приложений.

Приложение, разработанное в среде Windows Form Application, называется проектом. Проект включает в себя информацию об интерфейсе программы и программные коды обработчиков различных событий.

 

Описание среды Windows Form

Для запуска Windows Form необходимо выбрать пиктограмму Microsoft Visual Studio 2008 из меню Пуск®Программы®Microsoft Visual Studio 2008. После этого на экране появляется стандартное окно разработки программных продуктов, в верхней части которого расположена строка с командами главного меню. Далее необходимо выбрать File®New и появившемся всплывающем меню выбрать пункт Project. В появившейся панели New Project в окне Project Type выбрать CLR, в окне Template – Windows Form Application и задать имя проекта (Name), как показано на Рис.1

Рис.1 Окно определения имени и типа проекта

После нажатия клавиши OK на экране появляется панель седы разработки приложения, представленная на Рис.2. На этой панели представлены три основные окна:

- Главное окно;

- Окно формы Form1;

- Окно сведений об объекте Properties.

       Главное окно расположено в верхней части экрана. Это окно включает основное меню и панель инструментов Основное меню находится под заголовком окна и содержит все команды среды Windows Form. Панель инструментов расположена в левой части главного окна ниже основного меню. Она содержит кнопки, дублирующие наиболее часто используемые команды основного меню, что позволяет повысить эффективность работы в среде Windows Form.

       Окно формы предназначено для визуального проектирования внешнего интерфейса приложения. Форма имеет те же свойства, что и любое другое окно Windows. По умолчанию поле формы имеет серый цвет ( рис.2 ). Каждое окно имеет полосу заголовка, в которой по умолчанию находится заголовок Form1.Заголовок может быть изменен разработчиком. В примере на рис.2 - Example1 - Microsoft Visual Studio. В правом верхнем углу находятся кнопки свертывания, развертывания и закрытия окна.

Рис.2 Окно формы проекта

       Окно сведений об объекте Properetiesиспользуется для задания свойств компонентов и обработчиков событий. Окно имеет несколько страниц, которые открываются с помощью пиктограмм, расположенных в верхней части окна. Наиболее важными являются вкладка с перечнем свойств Properties (пиктограмма  ) и вкладка событий Events ( пиктограмма ).

       На вкладке Properties находится таблица свойств объекта. В левом столбце таблицы приведен список свойств активного объекта (в том числе и формы), а в правом столбце для каждого свойства указано его значение. Некоторые из этих значений могут быть пустыми. Значения свойств можно задавать или изменять непосредственно в таблице. Например, свойство Text, описывающее заголовок формы, можно изменить на «Пример». Можно задавать свойства компонентов и при написании обработчиков событий, о чем будет сказано ниже.

На вкладке Events указаны все события, на которые может реагировать активный объект. Для того чтобы связать выбранное событие с некоторой подпрограммой обработки события, надо дважды щелкнуть левой кнопкой мыши на пустом окне списка. После того откроется окно редактора кодов, в котором будет создана заготовка для подпрограммы обработки выбранного события.

Разработка проекта

 

Основным элементом проекта является форма, в которой размещаются компоненты самой среды. Форма представляет экземпляр класса Form. Одновременно с формой среда автоматически создает различные файлы. Однако не все файлы, которые создает среда разработки, необходимы для разработки проекта. В таблице 1 приведен перечень файлов, которые непосредственно используются при создании приложений.

Таблица 1.

Имя файла Описание
Solname.sin Файл, объединяющий все элементы одного или нескольких проектов, в одно общее решение.
Projname.vcproj Файл, содержащий специфическую информацию проекта.
Form1.h Файл, содержащий текст программы, описывающий класс формы.
Stdafx.h, Stdafx.cpp Файлы предварительной компиляции проекта
Name.cpp Файл, содержащий функцию main() проекта
Readme.txt Файл, в котором дано описание некоторых файлов проекта

Пустая форма, которая появляется на экране после загрузки среды Windows Form, представляет собой окно дизайнера формы. Дизайнер формы позволяет выбирать из предоставляемого средой разработки набора различные компоненты на вкладке ToolBox, вставлять или удалять их, выделять компоненты и т.п ( рис.3).

Рис.3 Панель инструментов и свойств проекта

       Для размещения компонента на форме необходимо выбрать нужный компонент на вкладке Toolbox, щелкнуть по нему мышью, переместить курсор в нужное место формы и снова щелкнуть мышью. В результате значок выбранного компонента появится в форме. На рис.3 показана форма с размещенной на ней кнопкой управления Button1. Аналогичным образом можно разместить в форме и другие компоненты. Такой компонент, как кнопка позволяет инициировать в разрабатываемом проекте различные действия. Для этого необходимо создать обработчик события – button1_Click(). Простейший способ создания такого типа обработчика события - кликнуть два раза по изображению кнопки Button1. В результате будет осуществлен автоматический переход в текстовый редактор проекта непосредственно на текст автоматически сгенерированного инструментальной средой обработчика:

private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e){}

Рис.4 Добавление визуальных компонент на форму

       В проекте могут быть созданы самые разные обработчики событий. Например, для того, чтобы различные компоненты формы реагировали, на щелчок мыши, необходимо связать это действие с функцией-обработчиком события с программой-обработчиком этого события. Общим способом создания такого обработчика является следующая последовательность действий: для выбранного элемента формы, например Label1, открыть вкладку Properties и кликом по иконке  перейти на вкладку «События». На вкладке выбрать MouseClick.  и дважды щелкнуть мышью в окошке рядом. В результате в текст проекта будет добавлен обработчик:

private: System::Void label1_MouseClick(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e)

 {

 }

Если просто кликнуть по изображению Label1 на форме, то будет сгенерирован обработчик:

private: System::Void label1_Click(System::Object^ sender, System::EventArgs^ e) {

}

Результатом всех перечисленных действий буде следующий листинг проекта:

#pragma once   namespace click {              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            ///            /// WARNING: If you change the name of this class, you will need to change the            ///     'Resource File Name' property for the managed resource compiler tool            ///     associated with all .resx files this class depends on. Otherwise,            ///     the designers will not be able to interact properly with localized            ///     resources associated with this form.            /// </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: System::Windows::Forms::Label^ label1;            private: System::Windows::Forms::Button^ button1;            protected:              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->label1 = (gcnew System::Windows::Forms::Label());                                           this->button1 = (gcnew System::Windows::Forms::Button());                                           this->SuspendLayout();                                           //                                           // label1                                           //                                           this->label1->AutoSize = true;                                           this->label1->Location = System::Drawing::Point(132, 158);                                           this->label1->Name = L"label1";                                 this->label1->Size = System::Drawing::Size(35, 13);                                           this->label1->TabIndex = 0;                                           this->label1->Text = L"label1";                                           this->label1->Click += gcnew System::EventHandler(this, &Form1::label1_Click);                                           this->label1->MouseClick += gcnew System::Windows::Forms::MouseEventHandler(this, &Form1::label1_MouseClick);                                           //                                           // button1                                           //                                           this->button1->Location = System::Drawing::Point(92, 89);                                           this->button1->Name = L"button1";                                           this->button1->Size = System::Drawing::Size(75, 23);                                           this->button1->TabIndex = 1;                                           this->button1->Text = L"button1";                                           this->button1->UseVisualStyleBackColor = true;                                           this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click);                                           //                                           // Form1                                           //                                           this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);                                           this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;                                           this->ClientSize = System::Drawing::Size(292, 266);                                           this->Controls->Add(this->button1);                                           this->Controls->Add(this->label1);                                           this->Name = L"Form1";                                           this->Text = L"Form1";                                           this->ResumeLayout(false);                                           this->PerformLayout();                             } #pragma endregion            private: System::Void label1_MouseClick(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e) {                                                            label1->Text="KKKKKKKKKKKKK";                                            }              private: System::Void label1_Click(System::Object^ sender, System::EventArgs^ e) {                                            }            private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {                                            }            }; }

 

                                       Листинг 1

 

       Модуль содержит описание класса Form1 (public ref class Form1), объектом которого является форма. В самом конце этого класса и размещаются заготовки обработчиков событий. Например функция с заголовочной частью, но с пустым телом:

private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {}

       Внутри созданной заготовки между фигурными скобками записывается код, который будет выполнен как реакция на событие Button1_Click. Например, при клике мышью по Label1 на экран будет выведен текст KKKKKKKKKK, так как в теле обработчика label1_MouseClick() записано присваиване: label1->Text="KKKKKKKKKKKKK";

 










Последнее изменение этой страницы: 2018-06-01; просмотров: 374.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...