关于画图的问题?
(十分欢迎大家来提点意见)
我想编一个绘图程序(用MFC实现), 像操作系统自带的画图程序, 当然功能要少很多, 我只须实现以下基本功能:
基本的图形绘制功能:铅笔, 直线,圆和矩形等(包括各种颜色的选择).
数据保存功能,能够把图形数据保存到文件中.
简单的编辑功能:双击选中,利用键盘Del键和菜单项删除选中的图形元素.
可以进行对象的放大和缩小.
如果在一个计算机上运行两个程序实例,那么在任何一个程序中操作在另外的程序中
都可以看到相同的操作结果,也就是程序之间具有通信的功能.
想请教各位, 我应该怎样组织结构?( 我个人是这样想的, 我先从CObject类派生出
CShape类, 再从CShape类派生出CLine, CRectangle, CCircle等等, 我可以在
CMyClassEdit类里设几个标志, 用来标志是要画什么图形, 或选择什么颜色, 我把处
理都放在OnLButtonDown(), OnLButtonUp(), OnMouseMove()三个函数里进行, 至于
样是不是可行, 我不清楚, 毕竟这只是构想, 还想请问一下, 消息的处理放在哪个类
里比较好, 我能把微软那个画图程序里的工具和颜色两个工具条通过什么方法为我所用吗?(if yes, how)) 多谢各位!!!!!!!!!!!!
问题点数:100、回复次数:7Top
1 楼MilitaryMiniatures(++)回复于 2003-11-01 23:35:37 得分 10
参考MFC的例子DrawCli,里面,基本上实现了你要的这些功能。你可以在这个例子的基础上,改造改造,就成为你需要的东西了。DrawCli可以在MSDN中查找到。很不错的一个例子。Top
2 楼lsl7909(笑一凡)回复于 2003-11-02 17:42:29 得分 10
可以参考《深入浅出MFC》中一个程序,绘图区的线用链表实现,线上的点用数组CArray类来实现,这样方便序列化!(保存和读取)Top
3 楼yintongshun(左岸思雨)回复于 2003-11-02 18:04:48 得分 40
http://www.vchelp.net/vchelp/file2003_2/drawapp.asp?type_id=4&class_id=1&cata_id=1&article_id=1000&search_term=
http://www.ai361.com/code/MFC3/1110.asp
看了这两个例子什么你就都会了。Top
4 楼yjh1982(血精灵)回复于 2003-11-06 08:47:16 得分 20
vchelp上的例子不错,楼主可以给分yintongshun(踏雪有痕)了
不过现实中要对位图缩放后操作,有没有更复杂的例子啊???????Top
5 楼yintongshun(左岸思雨)回复于 2003-11-06 09:16:02 得分 20
位图缩放:
http://www.hktk.com/soft/program/article/vc/vc440.html
http://www.ittide.com/document/article/graphic/21.html
http://www.gameres.com/Articles/Visual/Other/BmptoVC.htm
http://www.copathway.com/vchelp/archive.asp?type_id=18&class_id=1&cata_id=12&article_id=787&search_term=
http://www.copathway.com/vchelp/archive.asp?type_id=18&class_id=1&cata_id=12&article_id=247&search_term=
JPEG缩放:
http://www.copathway.com/vchelp/zsrc/thum.asp?type_id=18&class_id=1&cata_id=12&article_id=264&search_term=
Top
6 楼yjh1982(血精灵)回复于 2003-11-06 10:21:34 得分 0
我指的是:在位图显示150%或50%时,在上面画图且画上的东东相对位置不变,
相对大小也同样缩放...Top
7 楼yushulei(永远)回复于 2003-11-06 12:51:21 得分 0
upTop




