• 一起学习ArcEngine(7)上/下一个视图


    上一个视图命令可以快速的回退到最后一次地图操作以前的地图范围,

    下一个视图命令和上一个视图命令恰好相反。举个简单的例子,我现在看北京市的地图,同事甲过来想看看上海的地图,刚看不久,同事乙过来了,他想看北京的,这时上一个视图和下一个视图的命令就有用了,呵呵,同事甲过来后,我把地图平移到上海市范围,同事乙过来后,我点击上一个视图 地图会快速定位到北京市范围,很方便。

         要实现该功能,用到的是IExtentStack接口,即堆扩展接口。该接口提供的方法如下图所示

    image

    上一个视图命令,只要执行Undo方法即可;下一个视图命令只要执行Redo方法即可。

    上一个视图命令 的实现代码如下

       1:    public class GoBackToPreviousExtent : CommandBase
       2:      {
       3:          public GoBackToPreviousExtent()
       4:              : base("GoBackToPreviousExtent")
       5:          { }
       6:          public GoBackToPreviousExtent(AxMapControl mapCtl)
       7:               : base(mapCtl, "GoBackToPreviousExtent") 
       8:          { }
       9:          public GoBackToPreviousExtent(AxPageLayoutControl plCtl)
      10:              : base(plCtl, "GoBackToPreviousExtent")
      11:          { }
      12:          public override void OnClick()
      13:          {
      14:              IExtentStack pMapExtent = m_pActiveView.ExtentStack;
      15:              //判断是否可以回退,第一个视图不可以回退
      16:              if (pMapExtent.CanUndo())
      17:              {
      18:                  pMapExtent.Undo();
      19:              }
      20:          }
      21:      }

    下一个视图命令 的实现代码如下

       1:  public class GoToNextExtent : CommandBase
       2:      {
       3:           public GoToNextExtent()
       4:              : base("GoToNextExtent")
       5:          { }
       6:          public GoToNextExtent(AxMapControl mapCtl)
       7:               : base(mapCtl, "GoToNextExtent") 
       8:          { }
       9:          public GoToNextExtent(AxPageLayoutControl plCtl)
      10:              : base(plCtl, "GoToNextExtent")
      11:          { }
      12:   
      13:          public override void OnClick()
      14:          {
      15:              IExtentStack pMapExtent = (IExtentStack)m_pActiveView.ExtentStack;
      16:   
      17:              //判断是否可以回到下一个视图,最后一个视图没有下一个视图
      18:              if (pMapExtent.CanRedo())
      19:              {
      20:                  pMapExtent.Redo();
      21:              }
      22:          }
      23:      }
  • 相关阅读:
    28. Implement strStr()(KMP字符串匹配算法)
    60. Permutation Sequence(求全排列的第k个排列)
    47. Permutations II (全排列有重复的元素)
    46. Permutations (全排列)
    3. Longest Substring Without Repeating Characters(最长子串,双指针+hash)
    Python 一行代码实现并行
    1. Two Sum
    236. Lowest Common Ancestor of a Binary Tree(最低公共祖先,难理解)
    ssm项目配置多个数据源
    SpringMVC架构实现原理
  • 原文地址:https://www.cnblogs.com/liuyh208/p/1572924.html
Copyright © 2020-2023  润新知