Visual C++ MFC 在一个对话框怎么样实现undo功能,例如按下一个Button,即能撤销上次输入的操作
3个回答
展开全部
听说在设计一个编辑器的时候,撤销操作一直是一个难点。我所能想到的,也只是保存上次操作时,系统发出的消息,捕获它,获取相反的动作。我想您说的这个撤销功能,应该是编辑撤销,而不包括按键响应之类的吧。如果是按键响应这一类动作的撤销,您不妨就设置一个的Vector,在每一个按键响应函数内,将反向动作的函数指针添加到Vector中,当您按下那个Button的时候,调用Vector中的最后一个指针,然后删除它。如果是文本编辑类型,恐怕难度会大一些吧。至于this指针,我想不出怎么利用它。
展开全部
这你需要把所有执行的动作保存起来,然后执行相反的动作
比如你上次向上移动了一段距离,撤销时,你需要向下移动相同的距离
比如你上次向上移动了一段距离,撤销时,你需要向下移动相同的距离
追问
所有动作保存起来,这样对于大的程序好像难度比较大,我是想能不能通过this指针来完成?
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个简单,响应BUTTON消息。 然后处理啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询