您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 市场营销 > c#仿windows画图程序完整版
1注意:本程序采用vs2008版,不兼容vs2005。如果觉得可以就收藏吧。本程序仅供做c#实验的同学的一个参考。画图程序设计实验目的:1.了解.net下多媒体编程技术。2.掌握Graphics类绘制图像的方法。3.掌握使用GDI+技术显示和保存图像的方法。实验要求:1.设计一个画图程序。2.可以绘制各种图形,可以选择画笔的线型和颜色。3.可以将绘制的图像保存为位图文件。Form1.cs//主程序代码usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Drawing.Drawing2D;usingSystem.Collections;usingSystem.Net;usingSystem.Net.Sockets;usingSystem.Threading;namespaceWindowsApplication1{publicenumLineStyle{SOLID,DASH,DOT};publicpartialclassFrmDraw:Form{privateColorPenColor;privateenumShape{LINE,ELLIPSE,RECTANGLE,CIRCLE,FillRectangle,Pencil,Eraser,ELLIPSE1};privateShapeDrawShape;privatePointStartPoint;privatePointEndPoint;privatePointz;2publicGraphicsgps;privateboolMouseDownFlag;privatePenPenLine;privateSolidBrushSolid;privateHashtableDrawObject;privateintcount;privatestringShapeName;privateLineStylelineStyle;privateboolisOpen;privatestringimagePath;privatestringstrShape;privatestringstrLineStyle;PaintEventArgse1=null;inti=0;intj=0;intx2=-1,y2=-1;publicFrmDraw(){isOpen=false;count=0;lineStyle=LineStyle.SOLID;MouseDownFlag=false;PenLine=newPen(PenColor);PenColor=System.Drawing.Color.Black;DrawShape=Shape.LINE;DrawObject=newHashtable();ShapeName=LINE;strShape=直线;strLineStyle=实线;InitializeComponent();}//自定义颜色privatevoidCoustumColor_Click(objectsender,EventArgse){if(colorDialog.ShowDialog()==DialogResult.OK){PenColor=colorDialog.Color;}}3//鼠标事件privatevoidFrmDraw_MouseDown(objectsender,MouseEventArgse){MouseDownFlag=true;StartPoint.X=e.X;StartPoint.Y=e.Y;z.X=e.X;z.Y=e.Y;//Colorclr=GetBkColor(newPoint(e.X,e.Y));//MessageBox.Show(R+clr.R.ToString()+G+clr.G.ToString()+B+clr.B.ToString());}privatevoidFrmDraw_MouseMove(objectsender,MouseEventArgse){if(MouseDownFlag){ColorBkColor=this.BackColor;//Color.FromArgb(212,208,200);if(DrawObject!=null){foreach(DictionaryEntrydeinDrawObject){string[]splipstr=de.Key.ToString().Split('|');switch(splipstr[0]){casePencil:((Pencil)de.Value).Draw(gps);break;caseLINE:((DrawLine)de.Value).Draw(gps);break;caseELLIPSE:((DrawEelipse)de.Value).Draw(gps);break;caseRECTANGLE:((DrawRectangle)de.Value).Draw(gps);break;caseCIRCLE:((CIRCLE)de.Value).Draw(gps);4break;}}}switch(lineStyle){caseLineStyle.DASH:PenLine.DashStyle=DashStyle.Dash;break;caseLineStyle.DOT:PenLine.DashStyle=DashStyle.Dot;break;caseLineStyle.SOLID:PenLine.DashStyle=DashStyle.Solid;break;}switch(DrawShape){caseShape.Pencil:EndPoint=newPoint(e.X,e.Y);PenLine.Color=PenColor;//gps.DrawLine(PenLine,z,EndPoint);Pencilpencil=newPencil(z,EndPoint,PenLine,PenColor);DrawObject.Add(ShapeName+|+count+i,pencil);i++;break;caseShape.LINE:if(x2!=-1){PenLine.Color=BkColor;gps.DrawLine(PenLine,StartPoint,EndPoint);}EndPoint=newPoint(e.X,e.Y);PenLine.Color=PenColor;gps.DrawLine(PenLine,StartPoint,EndPoint);break;5caseShape.ELLIPSE:if(x2!=-1){PenLine.Color=BkColor;gps.DrawEllipse(PenLine,StartPoint.X,StartPoint.Y,EndPoint.X-StartPoint.X,EndPoint.Y-StartPoint.Y);}EndPoint=newPoint(e.X,e.Y);PenLine.Color=PenColor;gps.DrawEllipse(PenLine,StartPoint.X,StartPoint.Y,EndPoint.X-StartPoint.X,EndPoint.Y-StartPoint.Y);break;caseShape.ELLIPSE1:if(x2!=-1){Solid.Color=BkColor;gps.FillEllipse(Solid,StartPoint.X,StartPoint.Y,EndPoint.X-StartPoint.X,EndPoint.Y-StartPoint.Y);}EndPoint=newPoint(e.X,e.Y);Solid=newSolidBrush(PenColor);gps.FillEllipse(Solid,StartPoint.X,StartPoint.Y,EndPoint.X-StartPoint.X,EndPoint.Y-StartPoint.Y);break;caseShape.CIRCLE:if(x2!=-1){PenLine.Color=BkColor;gps.DrawEllipse(PenLine,StartPoint.X,StartPoint.Y,EndPoint.X-StartPoint.X,EndPoint.X-StartPoint.X);}EndPoint=newPoint(e.X,e.Y);PenLine.Color=PenColor;gps.DrawEllipse(PenLine,StartPoint.X,StartPoint.Y,EndPoint.X-StartPoint.X,EndPoint.X-StartPoint.X);break;caseShape.RECTANGLE:6/*floatwidth=Math.Abs(e.X-StartPoint.X);//确定矩形的宽floatheigth=Math.Abs(e.Y-StartPoint.Y);//确定矩形的高if(x2!=-1){PenLine.Color=Color.White;//gps.DrawRectangle(PenLine,StartPoint.X,StartPoint.Y,EndPoint.X-StartPoint.X,//EndPoint.Y-StartPoint.Y);gps.DrawRectangle(PenLine,StartPoint.X,StartPoint.Y,width,heigth);}PenLine.Color=PenColor;if(e.XStartPoint.X){StartPoint.X=e.X;}if(e.YStartPoint.Y){StartPoint.Y=e.Y;}gps.DrawRectangle(PenLine,StartPoint.X,StartPoint.Y,width,heigth);break;*/if(x2!=-1){PenLine.Color=BkColor;gps.DrawRectangle(PenLine,StartPoint.X,StartPoint.Y,EndPoint.X-StartPoint.X,EndPoint.Y-StartPoint.Y);}EndPoint=newPoint(e.X,e.Y);PenLine.Color=PenColor;gps.DrawRectangle(PenLine,StartPoint.X,StartPoint.Y,EndPoint.X-StartPoint.X,EndPoint.Y-StartPoint.Y);break;caseShape.FillRectangle:if(x2!=-1){Solid.Color=BkColor;7gps.FillRectangle(Solid,StartPoint.X,StartPoint.Y,EndPoint.X-StartPoint.X,EndPoint.Y-StartPoint.Y);}EndPoint=newPoint(e.X,e.Y);Solid=newSolidBrush(PenColor);gps.FillRectangle(Solid,StartPoint.X,StartPoint.Y,EndPoint.X-StartPoint.X,EndPoint.Y-StartPoint.Y);break;}x2=e.X;y2=e.Y;z.X=e.X;z.Y=e.Y;}}privatevoidFrmDraw_MouseUp(objectsender,MouseEventArgse){MouseDownFlag=false;count++;switch(DrawShape){c
本文标题:c#仿windows画图程序完整版
链接地址:https://www.777doc.com/doc-2541916 .html