欢迎您来到GIS动力

加入收藏 免费注册 用户登陆 帮助中心
首页 新闻动态 技术专栏 银杏树下 学习考研 软件下载 求职招聘 许愿瓶 节日祝福 用户中心 精彩推荐 资源搜索 地图
专栏导航: AO开发 | SO开发 | ArcGIS桌面 | 超图桌面 | 开发语言 | 数据库 | WebGIS | 银杏文学 | 研究生考题 | FreeMap FreeTalk
   您现在位于: 首页技术专栏ArcGIS应用与开发AO开发 → 正文
对图形的编辑动作进行撤销和重做
08-07-22 09:47:02 作者: 出处:

本例要演示的是如何在ArcMap中对图形的移动动作进行撤销和重做,用到IExtentStack接口。以帮助理解ArcMap中对撤销和重做实现的方法。

要点
  IActiveView的ExtentStack属性保存了其Extent改变的“历史记录”,而IMxDocument的OperationStack属性则有能力记录更复杂的编辑动作的历史。用户只有深刻理解了概念,才能够完成特定功能“历史记录”的定制。
   程序说明
  过程 Extent_UnDo和Extent_RnDo分别模拟了ArcMap中Tools工具栏上的“Go Back To Previous Extent”和“Go To Next Extent”两个按钮的功能。
   代码
  Option Explicit
  
  Public Sub Extent_UnDo()
   Dim pMxDocument As IMxDocument
   Dim pActiveView As IActiveView
   Dim pExtentStack As IExtentStack
  
   On Error GoTo ErrorHandler
   Set pMxDocument = ThisDocument
   Set pActiveView = pMxDocument.FocusMap
   Set pExtentStack = pActiveView.ExtentStack
  
   If pExtentStack.CanUndo Then
   pExtentStack.Undo
   End If
  
   Exit Sub
  ErrorHandler:
   MsgBox Err.Description
  End Sub
  
  Public Sub Extent_ReDo()
   Dim pMxDocument As IMxDocument
   Dim pActiveView As IActiveView
   Dim pExtentStack As IExtentStack
  
   On Error GoTo ErrorHandler
   Set pMxDocument = ThisDocument
   Set pActiveView = pMxDocument.FocusMap
   Set pExtentStack = pActiveView.ExtentStack
  
   If pExtentStack.CanRedo Then
   pExtentStack.Redo
   End If
  
   Exit Sub
  ErrorHandler:
   MsgBox Err.Description
  End Sub


(本文已被浏览 次)
发布人:admin
推荐给好友:发送给好友
上篇新闻:
下篇新闻:
相关评论
发表我的评论
  • 尊重网上道德,遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他各项有关法律法;
  • 本站有权保留或删除您发表的任何评论内容;
  •   相关文章  
    无相关新闻

    关于我们友情链接 ┋ 与我在线 ┋ 管理 ┋ TOP
     
    网站当前版本:GisPower CMS V3.0
    『GIS 动力』- http://www.gispower.org/
    联系我们:webmaster#gispower.org
    Copyright (c) 2003-2007 GisPOwer.Org. All Rights Reserved.
     

                   滇ICP备05006901号