谁能搞定这个问题?挑战高手的问题

hnzlk 2009-06-29 04:17:55
一个类似绘图软件,可以绘多个不同的对象。如:矩形,圆,文字,图片等。要实现redo,undo功能。看了设计模式之命令模式,发现每一个操作要弄一个命令操作类。如果我矩形要移动,圆要移动,图片要移动,怎么办?是不是都要写一个命令操作类。
谁有更好的办法呢?请详细说明!
...全文
25 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
chiwa737 2009-07-10
  • 打赏
  • 举报
回复
.net 可以将对象serialize,存储为文件或变量
如果你不用.net, 可以自己实现,网上好像有例子
hnzlk 2009-07-06
  • 打赏
  • 举报
回复
[Quote=引用 28 楼 chiwa737 的回复:]
可以写一个宏实现序列化, 通过存储加载实现redo undo
[/Quote]

不是很明白
chiwa737 2009-07-06
  • 打赏
  • 举报
回复
可以写一个宏实现序列化, 通过存储加载实现redo undo
hnzlk 2009-07-06
  • 打赏
  • 举报
回复
自己顶!
hnzlk 2009-07-06
  • 打赏
  • 举报
回复
直接修改应该是不行的吧。
ctl2008 2009-07-04
  • 打赏
  • 举报
回复
直接修改坐标
hnzlk 2009-07-04
  • 打赏
  • 举报
回复


EllipseCommand* pCommand = new EllipseCommand(this, point);
m_undoManager.DoCommand(pCommand);


我现在是绘制一个圆就new一个圆的对象,并加入到undo队列。我现在要移动这个圆的话,需要new一个新的对象吗?如果new一个新的话,好像撤消的时候不好处理,谁能说一下具体步聚,还是直接修改坐标?
blueink_200451 2009-07-01
  • 打赏
  • 举报
回复
《C++程序设计教程》第9章有一个例子。
和您问的问题很相近。
这个书网上很多的下载。
Conry 2009-07-01
  • 打赏
  • 举报
回复
http://www.codeguru.com/cpp/g-m/gdi/gdi/article.php/c3699/
zhouzhipen 2009-07-01
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 lambochan 的回复:]
问整个怎么搞,别人就只能给你个思路.
着手去做,逐个逐个功能去实现,而不是纸上谈兵..
搜多点资料参照着做(估计作图的一搜一大堆,不会连搜到懒得搜吧?),具体某个功能不会,别人或许还会帮得到你..
good luck.
[/Quote]

不要想坐等代码呀.
lambochan 2009-07-01
  • 打赏
  • 举报
回复
问整个怎么搞,别人就只能给你个思路.
着手去做,逐个逐个功能去实现,而不是纸上谈兵..
搜多点资料参照着做(估计作图的一搜一大堆,不会连搜到懒得搜吧?),具体某个功能不会,别人或许还会帮得到你..
good luck.
hnzlk 2009-07-01
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 hnzlk 的回复:]
能否详细一些呢?最好有类的结构之类的,或者demo也行。
[/Quote]
。。。
icefairy 2009-07-01
  • 打赏
  • 举报
回复
虚函数 多态
wanyuzhen 2009-07-01
  • 打赏
  • 举报
回复
多重继承
hnzlk 2009-07-01
  • 打赏
  • 举报
回复
那其它的呢,比在矩形上加一个图?然后做一些效果等。。。
hnzlk 2009-07-01
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 lambochan 的回复:]
问整个怎么搞,别人就只能给你个思路.
着手去做,逐个逐个功能去实现,而不是纸上谈兵..
搜多点资料参照着做(估计作图的一搜一大堆,不会连搜到懒得搜吧?),具体某个功能不会,别人或许还会帮得到你..
good luck.
[/Quote]
你以为我不会去找资料吗?做一个项目,难的是一种设计模式,框架结构,而不是如何去实现。关于上面的回答,谁给我了我一个完整的思路?既然你自己懒得去帮助别人,就不要在这里说了。
如果我有这方面的经验,或者我做过类似的项目。我肯定会让它有一个满意的答案。
biweilun 2009-06-30
  • 打赏
  • 举报
回复
模板

类继承。形状为父类,其他形状都集成于此

移动方法用模板会更方便的实现
zhao1zhong6 2009-06-30
  • 打赏
  • 举报
回复
[Quote=引用楼主 hnzlk 的帖子:]
一个类似绘图软件,可以绘多个不同的对象。如:矩形,圆,文字,图片等。要实现redo,undo功能。看了设计模式之命令模式,发现每一个操作要弄一个命令操作类。如果我矩形要移动,圆要移动,图片要移动,怎么办?是不是都要写一个命令操作类。
谁有更好的办法呢?请详细说明!
[/Quote]
我写过,比你说得还要复杂,把图形装入容器,当然显示类和操作类要分开,不知道我这样说你能不能明白.
hnzlk 2009-06-30
  • 打赏
  • 举报
回复
但还是要写很多的子类啊。我是想能不能有什么办法少写一点类。如果我要操作五个对象,五个对象又有五种操作,那不是要写很多类啊。。。。
hnzlk 2009-06-30
  • 打赏
  • 举报
回复
能否详细一些呢?最好有类的结构之类的,或者demo也行。
加载更多回复(10)

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧