中易网

c#+ae二次开发 base tool中怎样应用hookhelper

答案:1  悬赏:0  
解决时间 2021-03-12 04:35
c#+ae二次开发 base tool中怎样应用hookhelper
最佳答案
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查看程序内部的结构。
实际实现时就是对象间传递指向自身的指针传递给另一个对象。

IHookHelperm_hookHelper=new HookHelperClass();
m_hookHelper.Hook=axMapControl1.Object;
//这样就获得了axMapControl1控件的一个引用
然后通过m_hookHelper.ActiveView可以获得原axMapControl1的ActiveView项,
用m_hookHelper.FocusMap可以获得IMap对象
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
永登县兰州独一味砂锅烧烤茶饮(团结街店)在哪
冰点文库下载器3.2.4win10可以用吗
上海南洋中学有高中么(中山南二路的南洋中学
2.5的天籁保养都加多少机油
东莞大朗有没有交通银行星期天几点开门
桓台县人民法院执行局怎么去啊,有知道地址的
脚后跟摔断了,大概要多长时间能走路
保健品男人用品那种好
KDG是什么管子 主要是干什么的
奥林匹亚健身地址有知道的么?有点事想过去
新换的风云2后鼓刹踩刹车时像卡住什么有嗒嗒
南宁有哪几个垃圾场
上中下快捷宾馆地址在什么地方,想过去办事
米娜久尚商城 米娜久尚网 米娜久尚网地址
美的mg52-8001主板多少钱
推荐资讯
汽车起重机安全检测报告2015需不需要检测中心
农民工工伤老板不管怎么办?
混合气体的原子总数 分子数 咋求
和望远镜 、显微镜并列的是什么镜
货车的柴油,机油,液压油从气味和颜色,粘度
上海鹏高国际贸易有限公司在什么地方啊,我要
There____(be not)any books in the bag Ther
我的驾驶证扣满12分正在学习期间又被查住酒驾
请问怎么样给电脑加开机密码
郑州大学现代远程教育好毕业吗
Y132怎么去啊,有知道地址的么
跪求北海—涠洲岛—钦州三娘湾三日自驾游攻略
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?