欢迎来到天天文库
浏览记录
ID:33850603
大小:44.25 KB
页数:3页
时间:2019-03-01
《c#实现简单的画图板功能》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、C#实现简单的画图板功能 2009-04-1413:28:00
2、 分类: 编程之路
3、字号 订阅 最近在研究C#,希望用它实现一个简单的画图板的功能,经过在网上搜索各位牛大的源代码和自己的研究,终于可以完成这一目标了。好了,闲话少说,看代码说话。 //这里以画线功能为例,以下代码可实现类似于CAD里面的橡皮筋画线过程.publicpartialclassForm1:Form{boolisDrawLine=false;//标志是否进入画线状态Graphicsg;//GDI+对象PointPt1;//PointPt2;//两个端点,用于画线的publi
4、cForm1(){InitializeComponent();g=Graphics.FromHwnd(this.Handle);//创建一个新的GDI+对象Pt1=newPoint();Pt2=newPoint();}privatevoidbutton1_Click(objectsender,EventArgse){//一个按钮,按下的时候进入画线状态,再按一次退出画线状态if(isDrawLine){isDrawLine=false;}else{isDrawLine=true;}}privatevoidForm1_MouseDown(objects
5、ender,MouseEventArgse){//按下鼠标时发生if(isDrawLine){if(Pt1.isEmpty)//Pt1的值都为0,表示第一次按下鼠标{Pt1=e.Location; //获取起始点的坐标位置//Pt2=e.Location;}else{g.DrawLine(Pens.Red,Pt1,e.Location);//真正要画的直线//Pt1.X=0;//清零//Pt1.Y=0;//Pt2.X=0;//Pt2.Y=0;Pt1=Pt2; //将线的结束点赋给起始点,实现连续画线}}}privatevoidForm1_Mou
6、seMove(objectsender,MouseEventArgse){//移动鼠标if(isDrawLine&&!Pt1.IsEmpty){//这句很重要,画一条和背景色一样的线,清除上一次画的线//我选的颜色是白色,这样窗体的背景色也要设置成白色g.DrawLine(Pens.White,Pt1,Pt2);g.DrawLine(Pens.Red,Pt1,e.Location);//画一条线Pt2=e.Location;}}}好了,到这里一个简单的画图过程就实现了。但大家也会注意到,这样画的线当你最小化窗体再打开后画的图就不见了。这是由于在Win
7、dows环境下图形要不断刷新的原因。如果想保存画好的图形,我们将图形画到一个新建的位图图片上就可以了。
此文档下载收益归作者所有