`
isiqi
  • 浏览: 16043912 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

小巧可爱的MiniDraw

阅读更多

上文用于演示的程序名叫MiniDraw,也许你已有所察觉――这应该是一个画图程序。不错,我的实验品就是经典的画图程序,并且这几天我已经把它编写出来了。这是一个小巧可爱的画图程序,麻雀虽小,五脏俱全,屏幕截图如下:

从图中可以看出,每个图形就是一个对象,支持各种属性设置,以及鼠标拖拉。我将MiniDraw能做的事情列举了出来:

l 存盘读盘,这依赖于MFC序列化的强大威力。

l 鼠标拖拉图形对象,为了不至于引来一大堆复杂的问题,我将拖拉的图形限定为一个,即你只能选中一个图形。

l 设置图形的各种属性,例如填充色,线条宽度,叠放次序等。

l 可设置画布的填充色,以及最小尺寸,如果小于这个尺寸,将出现滚动条。

当然,以一个专业程序的角度来看,MiniDraw局限性也非常的大:

l 不能进行剪贴板的操作,不能进行撤消重做,其实这涉及到数据层的设计,这是一个高层次的主题,像这样的小程序就免了吧。

l 图形类型比较少,只有三种。

l 图形的创建过程比较简陋,点击工具栏按钮时直接创建,没有经过鼠标的操作来创建。

l 图形不能多选。

l 程序的整体设计比较随意,扩展性不够强。

我得为自己辩护一下,时间太少了,这个小程序是晚上编写的,前后只有一个星期,而且是用代码+资源的方式完成的。所以,做到这个程度也差不多了吧,如果你觉得哪里不好,可以随意修改之,有一些明显改进的话,可否通知我一下,让我也拜读一下。

MiniDraw可能会有下一个修改版本,这是我初步的改进计划:

l 对创建过程的改进,支持鼠标拖拉创建。

l 增加几个图形:多边形,曲线,自由线。

l 主窗口增加多标签。

l 图形支持多选。

l 对图形的点击测试进行优化。

我不保证这些修改都能完成,这要看是否有足够的时间,如果时间允许,过年之前应该可以发上来,敬请期待。

MiniDraw涉及到一些技术,包括序列化,GDI绘制,通用控件的使用,这些都将作为以后文章的主题。

你可以从这里下载MiniDraw,体会一下它的小巧可爱:

http://download.csdn.net/source/318010

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics