Jump to content

DSH

Newbies
  • Posts

    1
  • Joined

  • Last visited

DSH's Achievements

Newbie

Newbie (1/14)

  • First Post
  • Conversation Starter
  • Week One Done
  • One Month Later
  • One Year In

Recent Badges

0

Reputation

  1. Hi, im taking some C# courses , and we have to make in order to pass first course a Paintapplication like the one windows uses... It will be a hard C# project for me. We got as support only one code that generates a rectangle <black> on a small form... (one of the tolls of my Paint Application), using this code we must think a way of coding the rest of the tools so... So i have only 2 weeks to realise something like this, and i already started understanding that rectangle code i got . But i have some questions and problems that i want to solve first(and i will make screens and copy current source codes to see my point when i need help), so please help me making this program... i know that Paint.Net gives its source code, but i want to make a basic Paint Program that will have: ___________________________ Tools that my Paint Program will have: 1)Pencil 2)Brush 3)Line 4)CurveLine 5)Rectangle 6)Ellipse si probabil 7)Text ______________________________ i will add a color palette formed of many panels (painted with a color), and when i click one , the color will change... _____________________________ and ... i would like a lot to have a small panel where i can PREVIEWthe painting ->somewhere to the left or right ,like Paint.Net has. It will be neat to have one ... _____________________________ ***My Curent Problem:[/b]*** i have a small problem with the Draw Rectangle code i mentioned earlier... After i draw a rectangle and i wanna start making the second one, the first one DISSAPEARs! i keep looking at the source code and i cant find a way so that the rectangles will be added to the form (not displaying only one).... Print Screen here: Here is the Code: using System; using System.Drawing; using System.Windows.Forms; class BlockOut : Form { bool bBlocking, bValidBox; Point ptBeg, ptEnd; Rectangle rectBox; public static void Main() { Application.Run(new BlockOut()); } public BlockOut() { Text = "Dreptunghi Draw by DSH"; BackColor = SystemColors.Window; ForeColor = SystemColors.WindowText; } protected override void OnMouseDown(MouseEventArgs mea) { if (mea.Button == MouseButtons.Left) { ptBeg = ptEnd = new Point(mea.X, mea.Y); Graphics grfx = CreateGraphics(); grfx.DrawRectangle(new Pen(ForeColor), Rect(ptBeg, ptEnd)); grfx.Dispose(); bBlocking = true; } } protected override void OnMouseMove(MouseEventArgs mea) { if (bBlocking) { Graphics grfx = CreateGraphics(); grfx.DrawRectangle(new Pen(BackColor), Rect(ptBeg, ptEnd)); ptEnd = new Point(mea.X, mea.Y); grfx.DrawRectangle(new Pen(ForeColor), Rect(ptBeg, ptEnd)); grfx.Dispose(); Invalidate(); } } protected override void OnMouseUp(MouseEventArgs mea) { if (bBlocking && mea.Button == MouseButtons.Left) { Graphics grfx = CreateGraphics(); rectBox = Rect(ptBeg, new Point(mea.X, mea.Y)); grfx.DrawRectangle(new Pen(ForeColor), rectBox); grfx.Dispose(); bBlocking = false; bValidBox = true; Invalidate(); } } protected override void OnPaint(PaintEventArgs pea) { Graphics grfx = pea.Graphics; if (bValidBox) grfx.FillRectangle(new SolidBrush(ForeColor), rectBox); if (bBlocking) grfx.DrawRectangle(new Pen(ForeColor), Rect(ptBeg, ptEnd)); } Rectangle Rect(Point ptBeg, Point ptEnd) { return new Rectangle(Math.Min(ptBeg.X, ptEnd.X), Math.Min(ptBeg.Y, ptEnd.Y), Math.Abs(ptEnd.X - ptBeg.X), Math.Abs(ptEnd.Y - ptBeg.Y)); } }
×
×
  • Create New...