问题描述
这是用C#/Winform/GDI+实现的类似mspaint的画图程序。目前实现了直线、折线、矩形、椭圆、指示箭头等规则形状,这些形状被绘制后,不会像mspaint那样,就动不了了,而是可以再次被编辑,包括旋转、缩放等。运行界面如下:对于没做过这方面程序的人,最好奇的可能就是,你用Graphics类画出一个东西后,怎么样才能重新选中、移动、编辑它?以画一个矩形为例来说明,你如果用Graphics类在一个控件(Control)上画了个矩形,并且把矩形的起点坐标、大小等数据记住,那么用户在控件上单击的时候,你就能判断出用户是否在矩形上单击了,如果是,就表示矩形被选中了,如果用户同时还移动了鼠标,那么就可以根据移动的距离重新计算矩形的起点坐标,然后重新画这个矩形。这就是ExtendedPaint用的基本方法。在内部记住各种形状(线段、矩形、椭圆等)的起点坐标、大小、颜色等等信息,在用户移动、旋转形状后,要随即更新这些信息,并重新绘制形状。其它的难点还有不少,比如用户将图像放大,并在放大的视图上绘制新的形状,这时候的处理跟未放大时有什么不同?再如撤销(后退一步)功能,怎么样放弃最后一次操作,返回之前的状态?放大和撤销这两个功能现在还为实现,但是大致思路已经有了。做这个程序有两个目的,一是把功能写全后,用我之前写的一个控件库来做其UI,然后这个画图程序作为控件库的应用例子。二是做一个实用的截图、画图程序,尽量仿mspaint来做,但要在个方面有所增强。当然了目前ExtendedPaint还很简单,没有截图功能、不能粘贴位图、不能编辑文字等等,后面会继续完善。源码下载地址:
解决方案
本帖最后由 ping3108 于 2015-08-12 11:14:10 编辑
解决方案二:
解决方案三:
推荐一下,期待后继更加完善的版本!
解决方案四:
赞一个
解决方案五:
东西不错啊,值得赞
解决方案六:
解决方案七:
赞一下,好东西
解决方案八:
好东西,谢谢分享
解决方案九:
夜深人静,看码是最好的选择,料贴一定要顶
解决方案十:
支持一下。
解决方案十一:
箭头起点跟终点在一起的话你有考虑让他消失吗?
解决方案十二:
谢谢分享!
解决方案十三:
支持原创,期待优化后的版本
解决方案十四:
引用10楼bob76012的回复:
箭头起点跟终点在一起的话你有考虑让他消失吗?
这跟画圆角矩形时出现的问题一样,正在尝试解决办法,让它变小会是更好的办法。
解决方案十五:
参考线,网格线
解决方案:
解决方案:
解决方案:
解决方案:
吓死你一个人22
解决方案:
看起来,挺好的
解决方案:
谢谢分享!@!!!!!!
解决方案:
谢谢分享!!!!!!!
解决方案:
撤销恢复貌似需要给每一步操作都要写好相反操作的代码
解决方案:
感谢楼主分享,学习了!
解决方案:
解决方案:
该回复于2015-12-31 23:42:24被版主删除
解决方案:
大神,请问微软自带的mspaint程序能实现多标签界面么?
解决方案:
我也没办法因为我要打十五个字啊
解决方案:
解决方案:
引用26楼tianya424的回复:
大神,请问微软自带的mspaint程序能实现多标签界面么?
简单的多标签界面通过TabControl来模拟就行了。
解决方案:
引用29楼ping3108的回复:
Quote: 引用26楼tianya424的回复:
大神,请问微软自带的mspaint程序能实现多标签界面么?简单的多标签界面通过TabControl来模拟就行了。
我不懂编程呀,大神,能编出这个扩展程序么?我是百度到您这个网页的,我是win764位SP1,我觉得自带画图用来简单处理、浏览看图,是速度最快、最方便的。
解决方案:
感谢分享,谢谢大神
解决方案:
收藏学习下。
解决方案:
希望引进图层的概念就好了
解决方案:
不要越做越大,这样反而不方便了
解决方案:
引用13楼ping3108的回复:
这跟画圆角矩形时出现的问题一样,正在尝试解决办法,让它变小会是更好的办法。
对对!是变小可以限制每一个图形最小宽度不要让起点跟终点可以在一起
解决方案:
我是来学习的
解决方案:
参考paint.net源码,你会有更好的发现。
解决方案:
引用13楼ping3108的回复:
Quote: 引用10楼bob76012的回复:
箭头起点跟终点在一起的话你有考虑让他消失吗?这跟画圆角矩形时出现的问题一样,正在尝试解决办法,让它变小会是更好的办法。
试试修改画笔Pen的属性,Limit包含这个单词的一个属性
解决方案:
Mark。。。。。。。。。。。。。
解决方案:
相当不错,做的很完善
解决方案:
必须说,很好!!!!!!!
解决方案:
解决方案:
解决方案:
解决方案:
该回复于2016-01-04 00:01:24被版主删除
解决方案:
谢谢楼主分享!!!
解决方案:
解决方案:
看起来不错,加油。。。。