ArcEngine命令控件使用指南

需积分: 9 2 下载量 177 浏览量 更新于2024-09-21 收藏 4KB TXT 举报
"这篇教程主要关注的是如何在ArcEngine中使用空间控件,特别是通过Command控件来与MapControl和PageLayoutControl进行交互。这些控件位于ESRI.ArcGIS.Controls.dll类库中的ESRI.ArcGIS.Controls命名空间下,包括地图浏览、查询、图斑选取和编辑等功能。教程中会介绍如何创建和使用这些控件,以及如何将它们添加到工具栏中以实现用户界面的交互功能。" 在ArcEngine中,Command控件是与地图交互的关键元素。这些控件允许开发者执行各种地图操作,如浏览、查询、选择和编辑地理数据。例如,`MapControl`用于显示地图,而`PageLayoutControl`则用于处理布局,两者都是ArcGIS桌面应用程序中的核心组件。 在实现这些功能时,首先需要引用ESRI.ArcGIS.Controls.dll库,该库包含了所有与控件相关的类。例如,可以通过创建一个`ControlsOpenDocCommandClass`的实例来实现打开文档的功能,如下所示: ```csharp ICommand command = new ControlsOpenDocCommandClass(); command.OnCreate(m_mapControl.Object); command.OnClick(); ``` 在这里,`OnCreate`方法接收一个`MapControl`的对象,确保Command与特定的地图控件关联。`OnClick`方法则触发命令的执行。 对于内置的Command控件,ArcEngine已经提供了对应的COM对象,可以直接通过`ProgID`添加到工具栏上,如增加缩放工具的代码: ```csharp axToolbarControl1.AddItem("esriControls.ControlsMapZoomInTool"); ``` 这里的`esriControls.ControlsMapZoomInTool`是`MapZoomInTool`的`ProgID`,它将这个内置的Command控件添加到了`axToolbarControl1`工具栏上。 但是,如果需要自定义Command控件,可以创建一个新的.NET类并实现`ICommand`接口。在创建这个类时,需要重写`OnCreate`方法来设置Command与哪个控件关联,并重写`OnClick`来定义命令的行为。当创建.NET类的实例时,ArcGIS会自动创建一个Runtime Callable Wrapper (RCW)来处理COM通信。 ArcEngine中空间控件的使用涉及了对Command控件的理解、与地图控件的交互以及如何在用户界面中集成这些控件。通过熟练掌握这部分内容,开发者能够构建出具有丰富地图操作功能的应用程序。