ToolbarControl

本文详细介绍了ArcGIS中的ToolbarControl及其与MapControl的关系,强调了Command对象在其中的作用。ToolbarControl主要用于装载地图操作命令,而Command是其实现功能的核心。通过OnCreate方法将Command与MapControl关联,实现对地图的控制。同时,文章还讲解了如何自定义Command,包括添加到隐藏的ToolbarControl中,并提供了创建自定义Command的步骤和示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

导读

  ToolbarControl是一个装载地图操作命令和工具的控件,该类内部维护一个CommandPool命令池,在这个命令池中存放着所有已经添加的Command对象,获取其中的Command可以通过CommandPool的get_Command方法,通过比较Command的名称,可以得到想要的Command对象。

ToolbarControl与MapControl的关系

  前面已经提到ToolbarControl是一个装载“地图操作”命令和工具的控件,说明ToolbarControl必须和MapControl关联才有实际作用,因为ToolbarControl里面的每个功能最终都是控制地图的显示,而MapControl是用来最终显示地图的,所有地图的展现是在MapControl里面,而一些基本操作或命令如放大缩小平移什么的都在ToolbarControl里面。
  ToolbarControl与MapControl的关联实际上是把CommandPool命令池中的每个Command命令与MapControl做关联。具体实现看如下代码,先创建一个打开地图文档命令对象command,然后通过OnCreate方法把MapControl的实例对象引用axMapControl1传递过去,这样就完成了关联。调用onClick方法即可使用该命令。这个例子会激活一个打开地图文档的对话框。

ICommand command = new ControlsOpenDocCommandClass();
command.OnCreate(this.axMapControl1.Object);
command.OnClick();

Command的使用

  这里大家可能有个疑问,文章主题是ToolbarControl,为什么这里不说ToolbarControl的使用。我们需要明白ToolbarControl是一系列命令的装载类,它负责管理这些命令,我们要实现的功能一般都是如何创建一个新的命令,让他去操作地图。所以Command是核心,我们必须掌握Command的创建和使用。

1. 实例化一个Command对象
  上文中已经提到过,利用ArcEngine提供的Command类创建一个操作地图的命令,调用OnCreate方法让该命令和MapControl关联起来,最后调用OnClick方法让该命令可用。 

ICommand command = new ControlsOpenDocCommandClass();
command.OnCreate(m_mapControl.Object);
command.OnClick();

2. 利用COM对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值