zoukankan      html  css  js  c++  java
  • GIS二次开发之上一个视图/下一个视图

          这次要说的和前一篇中提到的全图是一样的,都是命令类功能,在自定义的时候只要重写OnClick()方法即可。同样如果想用button写,只要知道他们分别对应着ControlsMapZoomToLastExtentBackCommand和ControlsMapZoomToLastExtentForwardCommand,之后的代码就很容易了。简单的看看在button中实现这两个功能的代码:

    代码
            #region 上一个视图
            
    private void btnGoBack_Click(object sender, EventArgs e)
            {
                ControlsMapZoomToLastExtentBackCommand mapGoBack 
    = new ControlsMapZoomToLastExtentBackCommandClass();
                mapGoBack.OnCreate(axMapMain.Object);
                mapGoBack.OnClick();
            }
            
    #endregion

            
    #region 下一个视图
            
    private void btnGoForward_Click(object sender, EventArgs e)
            {
                ControlsMapZoomToLastExtentForwardCommand mapGoForward 
    = new ControlsMapZoomToLastExtentForwardCommandClass();
                mapGoForward.OnCreate(axMapMain.Object);
                mapGoForward.OnClick();
            }
            
    #endregion

          下面看看重写OnClick方法的代码

    代码
          #region 上一视图
            
    public override void OnClick()
            {
                
    if (null == m_pActiveView) return;
                IExtentStack m_stack 
    = m_pActiveView.ExtentStack;
                
    if (m_stack.CanUndo())
                {
                    m_stack.Undo();
                }
            }
            
    #endregion

           
    #region 下一视图
            
    public override void OnClick()
            {
                
    if (null == m_pActiveView) return;
                IExtentStack m_stack 
    = m_pActiveView.ExtentStack;
                
    if (m_stack.CanRedo())
                {
                    m_stack.Redo();
                }
            }
            
    #endregion

          在重写的时候,注意利用了IExtentStack堆栈接口,以stack保存了每次操作的地图视图,提供的CanUndo()和CanRedo()方法,判断栈中是否有视图可以back或者forward。

  • 相关阅读:
    自定义类型中结构体、枚举等,结构体内存对齐相关要点总结
    可变参数模拟printf()函数实现一个my_print()函数以及调用可变参数需注意的陷阱
    一些关于memcpy memmove函数的区别,和模拟实现
    浅谈 数组指针 指针数组 函数指针 函数指针数组... 以及它们之间区别。
    C语 三子棋小游戏
    5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果
    stm32移植ds18b20时出现的问题
    自己实现strcmp
    C语言新手写扫雷攻略3
    C语言新手写扫雷攻略2
  • 原文地址:https://www.cnblogs.com/wangyong/p/1900328.html
Copyright © 2011-2022 走看看