Visual C++ .NET/2D/Line

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

Drawing Lines

<source lang="csharp"> [STAThreadAttribute] int main(array<System::String ^> ^args) {

 Application::Run(gcnew Form1());
 return 0;

}

 using namespace System;
 using namespace System::ComponentModel;
 using namespace System::Collections;
 using namespace System::Windows::Forms;
 using namespace System::Data;
 using namespace System::Drawing;
   using namespace System::Drawing::Drawing2D;
 public ref class Form1 : public System::Windows::Forms::Form
 {
 public:
   Form1(void)
   {
     InitializeComponent();
           pen = gcnew array<Pen^>(5);
           // a one unit width black pen
           pen[0] = Pens::Black;
           // a one unit with purple pen broken with dashes
           pen[1] = gcnew Pen(Color::Purple);
           pen[1]->DashStyle = DashStyle::Dash;
           // a 4 unit width chocolate pen
           pen[2] = gcnew Pen(Color::Chocolate, 4);
           
           // An 8 width royalblue pen made of three lines narrow wide narrow
           pen[3] = gcnew Pen(Color::RoyalBlue, 10);
           array<float>^ cArray = gcnew array<float> { 
               0.0f, 0.1f, 0.3f, 0.7f, 0.9f, 1.0f 
           }; 
           pen[3]->CompoundArray = cArray;
           // a 5 width tomato pen with diamond start and round end anchors
           pen[4] = gcnew Pen(Color::Tomato, 5);
           pen[4]->StartCap = LineCap::DiamondAnchor;
           pen[4]->EndCap = LineCap::RoundAnchor;
   }
       array<Pen^>^ pen;
   void InitializeComponent(void)
   {
           this->SuspendLayout();
           this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
           this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
           this->ClientSize = System::Drawing::Size(292, 273);
           this->Name = L"Form1";
           this->Text = L"Drawing Some lines";
           this->Paint += 
               gcnew System::Windows::Forms::PaintEventHandler(this, 
                                                        &Form1::Form1_Paint);
           this->ResumeLayout(false);
       }
   private: 
       System::Void Form1_Paint(System::Object^ sender, 
                                System::Windows::Forms::PaintEventArgs^ e)
       {
           Random ^rand = gcnew Random();
           for (int i = 0; i < 10; i++)
           {
               e->Graphics->DrawLine(pen[i%5], rand->Next(0,299), 
                   rand->Next(0,299), rand->Next(0,299), rand->Next(0,299));
           }
       }
 };
  
 </source>