MapControl控件
MapControl对应ArcMap中的数据视图,它封装了Map对象,并提供了额外的属性、方法、事件用于:
- 管理控件的外观、显示属性和地图属性;
- 添加并管理控件中的数据层;
- 装载Map文档(.mxd)到控件中
- 从其它应用程序拖放数据到控件中;
- Tracking shapes and drawing to the display
ArcGIS的每种控件都有属性可以设置,它们可以在可视化环境中进行编辑。将控件拖放到窗体上后,用户可以右键点击,选择“属性”菜单来编辑这些属性,它们可以让用户不编写一行代码的情况下快速构建一个GIS应用程序。
MapControl实现的主要接口有:IMapControlDefault、IMapControl2、IMapControl3和事件接口IMapControlEvents2。
主要接口
IMapControlDefault接口
IMapControlDefault接口时地图控件缺省接口,多数开发环境自动使用这个接口定义的属性、方法。由于MapControl是一个自动化控件,当它被放到一个容器,如窗体上后,它会自动产生一个被称为axMapControl1的对象,这个对象可以直接使用缺省接口定义的属性和方法。这个接口也代表了控件最新版本的接口,MapControl当前最新版本接口为IMapControl3。
当需要使用这个接口的时候,可以使用下面代码:
IMapControlDefault pMapControl;
pMapControl=axMapControl1.Object as IMapControlDefault;
返回潜在的MapControl控件
IMapControl2接口
这个接口时任何一个与MapControl相关的任务的出发点,如设置控件外观,设置Map对象或控件的显示属性,添加或者管理数据图层、地图文档,在控件上绘制图形和返回Geometry等。
IMapControl2定义了控制控件外观界面的各种属性和方法,如Appearance,BorderStyle和BackColor。它定义的方法有TrackLine、TrackPolygon、TrackRectangle和TrackCircle方法让程序员可以直接在控件上获得Geometry对象,它还提供了Drawshape和DrawText方法让用户直接在控件上绘制图形。
IMapControl3接口
该接口继承IMapControl2,并增加了以下8个属性和一个方法:
- CustomProperty:设置自定义控件属性
- DocumentFilename:返回MapControl装入的地图文档的文件名
- DocumentMap:返回MapControl最后装入的地图的名称
- KeyIntercept:返回或设置MapControl截取键盘按键信息,详情见表3-1
- Object:返回潜在的MapControl控件,