ТПКС-лаба3
.docxМІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ ХАРКІВСЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ РАДІОЕЛЕКТРОНІКИ
Кафедра КІТАМ
ЗВІТ з лабораторної роботи № 3 з дисципліни: «Технологіі програмування комп’ютерних систем»
Варіант 2
Виконав: Перевірив:
ст. гр. АКТСІу -17-1 ст. викл. каф. КІТАМ
Черкашин В.А. Бронніков А.І.
Юрченко В.Р.
Харків 2019
3 РЕАЛІЗАЦІЯ ГРАФІЧНИХ ФУНКЦІЙ .NET FRAMEWORK В C++/CLI. ПОБУДОВА ПРОСТИХ ТА СКЛАДЕНИХ ОБ’ЄКТІВ
3.1 Мета роботи
Використання найпростіших функцій для роботи з графікою Windows Forms у середовищі Microsoft Visual Studios 2010.
1.2 Практична частина та лістинг програмного коду
Файл MyForm.cpp:
#include "MyForm.h"
using namespace System;
using namespace System::Windows::Forms;
[STAThreadAttribute]
void Main(array<String^>^ args) {
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false);
laba3::MyForm form;
Application::Run(% form);
}
Файл MyForm.h:
#pragma once
namespace laba3 {
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>
/// Сводка для MyForm
/// </summary>
public ref class MyForm : public System::Windows::Forms::Form
{
public:
MyForm(void)
{
InitializeComponent();
//
//TODO: добавьте код конструктора
//
}
protected:
/// <summary>
/// Освободить все используемые ресурсы.
/// </summary>
~MyForm()
{
if (components)
{
delete components;
}
}
private: System::Windows::Forms::Timer^ timer1;
private: System::ComponentModel::IContainer^ components;
protected:
private:
/// <summary>
/// Требуется переменная конструктора.
/// </summary>
#pragma region Windows Form Designer generated code
/// <summary>
/// Обязательный метод для поддержки конструктора - не изменяйте
/// содержимое данного метода при помощи редактора кода.
/// </summary>
void InitializeComponent(void)
{
this->components = (gcnew System::ComponentModel::Container());
this->timer1 = (gcnew System::Windows::Forms::Timer(this->components));
this->SuspendLayout();
//
// timer1
//
this->timer1->Tick += gcnew System::EventHandler(this, &MyForm::timer1_Tick);
//
// MyForm
//
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(571, 462);
this->Name = L"MyForm";
this->Text = L"MyForm";
this->Load += gcnew System::EventHandler(this, &MyForm::MyForm_Load);
this->ResumeLayout(false);
}
#pragma endregion
private: System::Void MyForm_Load(System::Object^ sender, System::EventArgs^ e) {
timer1->Interval=50;
timer1->Start();
}
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
}
private: System::Void timer1_Tick(System::Object^ sender, System::EventArgs^ e) {
Graphics ^g = MyForm::CreateGraphics();
g->Clear(Color::White);
Pen^ blackPen = gcnew Pen(Color::Black, 3.0f);
int x1 = 10; int y1 = 10;
int width1 = 100; int height1 = 100;
g->DrawEllipse(blackPen, x1, y1, width1, height1);
SolidBrush^ yegrBrush = gcnew SolidBrush(Color::YellowGreen);
int x2 = 120;
int y2 = 10;
int width2 = 200;
int height2 = 100;
Rectangle rect = Rectangle(x2, y2, width2, height2);
g->FillEllipse(yegrBrush,rect);
Pen^ goldPen = gcnew Pen(Color::Gold, 3.0f);
static int x = 0;
int y = 185;
int width = 200;
int height = 200;
g->DrawRectangle(goldPen, ++x, y, width, height);
}
};
}
Рисунок 3.1- Демонстрацiя роботи програми
ВИСНОВКИ
В ході виконання лабораторної роботи було розглянуто функції формування графічних об'єктів. Внаслідок чого була написана програма, яка реалізує роботу функцій малювання: Cirlce, Polygon (з Timer), FillEllipse.