实用主义

把.Net用好用足

导航

MO功能使能情况

MO功能点的分类
1.全程enable(AE),挂接MapControl Event(下文简化为H),如:动态坐标显示
2.动作瞬时enable(IE),不挂接MapControl Event,但读取期属性,如:图层设置
2.动作瞬时enable(IE),挂接MapControl Event,执行完条件:达到一个功能组件内的触发条件,如:图上统计,加入图形,画多边形
3.一段时间eable(SE),挂接MapControlEvent,执行完条件:系统激活了另一类别3或4的功能组件,如:选择,OverView,放大
4.一段时间eable(SE),可被中断的操作,挂接MapControlEvent,执行完条件:达到一个功能组件内的触发条件;中断条件:未达到一个功能组件内的触发条件且系统激活了类型为3或4的功能组件
5.空操作(系统默认情况)

多个功能点可以同时挂接Map Control事件的组合情况如下(Y可并存,N不可并存,O未确定):
1 2 3 4
1 Y Y Y Y
2 N Y(画线并放大) N
3 N N
4 N

问题一:挂接事件方式
挂接事件两种方式:Handles和addhandler,考虑到动态性,采用addhandler,并可采用removehandler解挂,
由于只有功能组件知道自己挂了什么事件,因此要求功能组件实现挂接和解挂(参数为MapControl)

问题二:挂接与解挂的控制权
一个模块要执行挂接与解挂,那么这个模块必须知道什么时候挂,什么时候解。功能组件中,类别1、2、5知道 ,而3、4不能直接知道,除非在系统激活一个功能组件时向所有的组件广播这个事件。如果系统要控制
 
--------------------------------
不写了,这篇文章是思考的一个过程

posted on 2006-06-30 18:05  Render  阅读(369)  评论(0编辑  收藏  举报