- •Введение
- •Создание проекта в среде Windows Form
- •1.1. Описание среды Windows Form
- •1.2. Разработка проекта
- •1.3 Сохранение, сборка и выполнение проекта
- •Примеры использования визуальных компонентов среды Windows Form
- •2.1. Визуальные компоненты Label, TextBox и Button
- •2.2. Визуальные компоненты ListBox, ComboBox, RadioButton и GroupBox.
- •2.3. Матрица ячеек DataGridView
- •Материалы для самостоятельной проработки
- •3.1. Краткое введение в объектно-ориентированное программирование (ооп)
- •3.2 Динамические структуры данных
- •3.3 Итераторы
- •3.4. Примеры с использованием списка прямого доступа и итераторов.
- •3.6. Реализация «движения» по однородному и сложному фону.
- •3.7. Сложное движение каркасных моделей.
- •Типовые задания для лабораторных работ
- •Контрольные вопросы
- •Список рекомендуемой литературы
- •Оглавление
1.2. Разработка проекта
Основным элементом проекта является форма, в которой размещаются компоненты самой среды. Форма представляет экземпляр класса 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";
