Visual C++ .NET/2D/Line

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

Drawing Lines

 
[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));
            }
        }
  };