⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form1.h

📁 This rar contains code from every chapter of Wrox.Ivor.Hortons.Beginning.Visual.C.Plus.Plus.2008.Mar
💻 H
📖 第 1 页 / 共 4 页
字号:
      // 
      this->blackContextMenuItem->Name = L"blackContextMenuItem";
      this->blackContextMenuItem->Size = System::Drawing::Size(151, 22);
      this->blackContextMenuItem->Text = L"Black";
      this->blackContextMenuItem->Click += gcnew System::EventHandler(this, &Form1::blackToolStripMenuItem_Click);
      // 
      // redContextMenuItem
      // 
      this->redContextMenuItem->Name = L"redContextMenuItem";
      this->redContextMenuItem->Size = System::Drawing::Size(151, 22);
      this->redContextMenuItem->Text = L"Red";
      this->redContextMenuItem->Click += gcnew System::EventHandler(this, &Form1::redToolStripMenuItem_Click);
      // 
      // greenContextMenuItem
      // 
      this->greenContextMenuItem->Name = L"greenContextMenuItem";
      this->greenContextMenuItem->Size = System::Drawing::Size(151, 22);
      this->greenContextMenuItem->Text = L"Green";
      this->greenContextMenuItem->Click += gcnew System::EventHandler(this, &Form1::greenToolStripMenuItem_Click);
      // 
      // blueContextMenuItem
      // 
      this->blueContextMenuItem->Name = L"blueContextMenuItem";
      this->blueContextMenuItem->Size = System::Drawing::Size(151, 22);
      this->blueContextMenuItem->Text = L"Blue";
      this->blueContextMenuItem->Click += gcnew System::EventHandler(this, &Form1::blueToolStripMenuItem_Click);
      // 
      // Form1
      // 
      this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
      this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
      this->BackColor = System::Drawing::SystemColors::ControlLightLight;
      this->ClientSize = System::Drawing::Size(355, 285);
      this->ContextMenuStrip = this->contextMenuStrip1;
      this->Controls->Add(this->toolStrip1);
      this->Controls->Add(this->menuStrip1);
      this->MainMenuStrip = this->menuStrip1;
      this->Name = L"Form1";
      this->Text = L"CLR Sketcher";
      this->MouseUp += gcnew System::Windows::Forms::MouseEventHandler(this, &Form1::Form1_MouseUp);
      this->Paint += gcnew System::Windows::Forms::PaintEventHandler(this, &Form1::Form1_Paint);
      this->MouseDown += gcnew System::Windows::Forms::MouseEventHandler(this, &Form1::Form1_MouseDown);
      this->MouseMove += gcnew System::Windows::Forms::MouseEventHandler(this, &Form1::Form1_MouseMove);
      this->menuStrip1->ResumeLayout(false);
      this->menuStrip1->PerformLayout();
      this->toolStrip1->ResumeLayout(false);
      this->toolStrip1->PerformLayout();
      this->contextMenuStrip1->ResumeLayout(false);
      this->ResumeLayout(false);
      this->PerformLayout();

    }
#pragma endregion
  private: System::Void lineToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
   elementType = ElementType::LINE;          }
private: System::Void rectangleToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
    elementType = ElementType::RECTANGLE;       }
private: System::Void circleToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
   elementType = ElementType::CIRCLE;        }
private: System::Void curveToolStripMenuItem_DoubleClick(System::Object^  sender, System::EventArgs^  e) {
   elementType = ElementType::CURVE;        }
private: System::Void blackToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
            color = Color::Black;        }
private: System::Void redToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
            color = Color::Red;        }
private: System::Void greenToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
            color = Color::Green;        }
private: System::Void blueToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
            color = Color::Blue;        }
private: System::Void colorToolStripMenuItem_DropDownOpening(System::Object^  sender, System::EventArgs^  e) {
  blackToolStripMenuItem->Checked = color == Color::Black;
  redToolStripMenuItem->Checked = color == Color::Red;
  greenToolStripMenuItem->Checked = color == Color::Green;
  blueToolStripMenuItem->Checked = color == Color::Blue;
         }
private: System::Void elementToolStripMenuItem_DropDownOpening(System::Object^  sender, System::EventArgs^  e) {
  lineToolStripMenuItem->Checked = elementType == ElementType::LINE;
  rectangleToolStripMenuItem->Checked = elementType == ElementType::RECTANGLE;
  circleToolStripMenuItem->Checked = elementType == ElementType::CIRCLE;
  curveToolStripMenuItem->Checked = elementType == ElementType::CURVE;
        }
         // Current element type
         ElementType elementType;
         // Current drawing color
         Color color;
private: System::Void Form1_Paint(System::Object^  sender, System::Windows::Forms::PaintEventArgs^  e) {
  Graphics^ g = e->Graphics;
  sketch->Draw(g);
  if(tempElement)
    tempElement->Draw(g);
}
         // Records when drawing an element is in progress
         bool drawing;
         // Records the initial mouse cursor position
         Point firstPoint;
private: System::Void Form1_MouseDown(System::Object^  sender, System::Windows::Forms::MouseEventArgs^  e) {
  if(e->Button == System::Windows::Forms::MouseButtons::Left)
  {
    if(mode == Mode::Normal)
      drawing = true;
    firstPoint = e->Location;
  }
         }
private: System::Void Form1_MouseMove(System::Object^  sender, System::Windows::Forms::MouseEventArgs^  e) {
   if(drawing)
  {
    if(tempElement)
      Invalidate(tempElement->Bound);  // The old element region
    switch(elementType)
    {
      case ElementType::LINE:
        tempElement = gcnew Line(color, firstPoint, e->Location);
        break;
      case ElementType::RECTANGLE:
        tempElement = gcnew Rectangle(color, firstPoint, e->Location);
        break;
      case ElementType::CIRCLE:
        tempElement = gcnew Circle(color, firstPoint, e->Location);
        break;
      case ElementType::CURVE:
        if(tempElement)
          safe_cast<Curve^>(tempElement)->Add(e->Location);
        else
          tempElement = gcnew Curve(color, firstPoint, e->Location);
        break;
    }
    Invalidate(tempElement->Bound);    // The new element region
    Update();
   }
   else if(mode == Mode::Normal)
   {
     Element^ element = sketch->HitElement(e->Location);
     if(highlightedElement == element)
       return;
     if(highlightedElement)
     {
       Invalidate(highlightedElement->Bound);
       highlightedElement->highlighted = false;
       highlightedElement = nullptr;
     }
     if(element)
     {
       highlightedElement = element;
       highlightedElement->highlighted = true;
       Invalidate(highlightedElement->Bound);
     }
     Update();
    }
   else if(mode == Mode::Move && e->Button == System::Windows::Forms::MouseButtons::Left)
   {  // Move the highlighted element
     if(highlightedElement)
     {
        Invalidate(highlightedElement->Bound);    // Region before move
        highlightedElement->Move(e->X - firstPoint.X, e->Y - firstPoint.Y);
       firstPoint = e->Location;
       Invalidate(highlightedElement->Bound);     // Region after move
       Update();
     }
   }
   else if(mode == Mode::Rotate)
   {
   }
 }

private: System::Void Form1_MouseUp(System::Object^  sender, System::Windows::Forms::MouseEventArgs^  e) {
  if(!drawing)
  {
    mode = Mode::Normal;
    return;
  }
  if(tempElement)
  {
    sketch->Add(tempElement);
    tempElement = nullptr;
   Invalidate();
  }
  drawing = false;
         }
         // Temporary store for the element being drawn
         Element^ tempElement;
         // Stores the current sketch
         Sketch^ sketch;
protected:
  // The currently highlighted element
  Element^ highlightedElement;
private: System::Void contextMenuStrip1_Opening(System::Object^  sender, System::ComponentModel::CancelEventArgs^  e) {
 contextMenuStrip1->Items->Clear();    // Remove existing items
 if(highlightedElement)
 {
   contextMenuStrip1->Items->Add(moveContextMenuItem);
   contextMenuStrip1->Items->Add(deleteContextMenuItem);
   contextMenuStrip1->Items->Add(sendToBackContextMenuItem);
 }
 else
 {
    contextMenuStrip1->Items->Add(lineContextMenuItem);
    contextMenuStrip1->Items->Add(rectangleContextMenuItem);
    contextMenuStrip1->Items->Add(circleContextMenuItem);
    contextMenuStrip1->Items->Add(curveContextMenuItem);
    contextMenuStrip1->Items->Add(contextSeparator);
    contextMenuStrip1->Items->Add(blackContextMenuItem);
    contextMenuStrip1->Items->Add(redContextMenuItem);
    contextMenuStrip1->Items->Add(greenContextMenuItem);
    contextMenuStrip1->Items->Add(blueContextMenuItem);

    // Set checks for the menu items
    blackContextMenuItem->Checked = color == Color::Black;
    redContextMenuItem->Checked = color == Color::Red;
    greenContextMenuItem->Checked = color == Color::Green;
    blueContextMenuItem->Checked = color == Color::Blue;
    lineContextMenuItem->Checked = elementType == ElementType::LINE;
    rectangleContextMenuItem->Checked = elementType == ElementType::RECTANGLE;
    circleContextMenuItem->Checked = elementType == ElementType::CIRCLE;
    curveContextMenuItem->Checked = elementType == ElementType::CURVE;
 }

        }

private: System::Void deleteContextMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
           if(highlightedElement)
           {
             sketch->Delete(highlightedElement);
             Invalidate(highlightedElement->Bound);
             highlightedElement = nullptr;
             Update();
           }

         }
private: System::Void sendToBackContextMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
  if(highlightedElement)
  {
    sketch->Add(sketch->Delete(highlightedElement));
    highlightedElement->highlighted = false;
    Invalidate(highlightedElement->Bound);
    highlightedElement = nullptr;
    Update();
  }
}
private: System::Void moveContextMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
           mode = Mode::Move;
         }
         Mode mode;
};
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -