zoukankan      html  css  js  c++  java
  • AE中IHookHelper的用法 来自http://blog.sina.com.cn/s/blog_6faf711d0100xs1x.html

    IHookHelper 主要在用在自定义类型于AE带的的ICommand或ITool等,

    1.实例化IHookHelper 对象:


    IHookHelper m_hookHelper = new HookHelperClass(); 
    m_hookHelper.Hook = this.axMapControl1.Object ;这样就可以把AxMapControl传递给其它要用到的地方。

    2.通过IHookHelper,获取地图控件和主窗体:

    IntPtr pHandle = new IntPtr (m_hookHelper.ActiveView.ScreenDisplay.hWnd);
    axMapControl1 = System.Windows.Forms.Form.FromHandle(pHandle) as AxMapControl;//对这个地图控件对象操作,会直接反应到主窗体的地图控件上

    Form. MainForm. = Form.FromHandle(pHandle).FindForm();//这里的主窗体对象之后运行时能起作用,MainForm. 不能直接访问到主窗体里的变量。

    3.通过IHookHelper,获取IActiveView和IMap对象

    再通过IHookHelper.ActiveView和IHookHelper.FocusMap属性来获取IActiveView和IMap对象,通过这两个接口进行更一步的操作.


    4.通过IHookHelper,操作地图

    IHookActions hookActions= m_hookHelper as IHookHelper;
    获取IHookActions,再通过IHookActions进行Flash,Pan,ZoomTo操作.

    HOOK实际是一个对象传出的自身的引用或者叫指针或者叫句柄。 
    例如一个程序,加载一个dll内的对象时通过把Hook传递给要调用的对象,
    这样dll内的对象就得到了应用程序传递给他的这个hook,
    对象可以通过这个hook查看程序内部的结构。
    实际实现时就是对象间传递指向自身的指针传递给另一个对象。

    IHookHelper  m_hookHelper=new HookHelperClass();
    m_hookHelper.Hook=axMapControl1.Object;
     //这样就获得了axMapControl1控件的一个引用
    然后通过m_hookHelper.ActiveView可以获得原axMapControl1的ActiveView项,
    用m_hookHelper.FocusMap可以获得IMap对象 


    Provides access to members needed when developing commands to work with the MapControl, PageLayoutControl, ArcMap, and custom controls and applications.

    Product Availability

    Available with ArcGIS Engine.

    Description

    Use the IHookHelper interface to return the ActiveView, PageLayout or FocusMap of the hook passed to the ICommand::OnCreate event regardless of whether the hook is a MapControl, PageLayoutControl, ToolbarControl or ArcMap.

  • 相关阅读:
    SQL入门学习4-复杂查询
    SQL入门学习3-数据更新
    SQL入门学习2-聚合与排序
    SQL入门学习1-查询基础
    SQL入门学习0-数据库与SQL
    Exp9 20155218 Web安全基础实践
    20155218《网络对抗》Exp8 Web基础
    # 20155218 徐志瀚 EXP7 网络欺诈
    Exp6 20155218 信息搜集与漏洞扫描
    20155218《网络对抗》MSF基础应用
  • 原文地址:https://www.cnblogs.com/gisoracle/p/4772146.html
Copyright © 2011-2022 走看看