ArcGIS Engine开发之TocControl

TocControl控件简介

TocControl控件的主要作用是显示当前加载的图层有哪些、采用什么样的符号等,目的是使用户对当前加载的数据有一个总体的把握。与之相关联的伙伴控件有:MapControl,PageLayoutControl,ReaderControl,SceneControl,GlobeControl等。

一、TOCControl与数据视图的关联

关联的方式有两种,一种是代码的绑定,第二种是TOCControl控件的属性表中设置。

属性设置:在General选项卡中选择Buddy中进行关联。

代码绑定:axTOCControl.SetBuddyControl(mainMapControl);

二、图层显示顺序的调整

在应用中,有时需要对图层进行顺序调整,以免放生盖压导致部分图层不能显示,图层顺序的调整也有两种方法:

属性设置:通过属性选项卡General下的复选框Enable Layer Drag and Drop,即可实现图层的拖拽功能。

代码实现:分别在TOCControl控件的OnMouseDown和OnMouseUp两个事件设置,及HitTest()方法;

HitTest()方法的参数如下:

1 Public void HitTest(
3    int X,//当鼠标在TOCControl中按下时,参照TOCControl左上角为原点,以像素为单位,
4    int Y, //同上,返回鼠标的y坐标
5    ref esriTOCControlItem ItemType,//枚举常量
6    ref IBasicMap BasicMap,//绑定MapControl中的IBasicMap对象
7    ref ILayer Layer,//被点击的图层对象
8    ref object Unk,//图例组对象
9    ref object Data);//图例组中图例类的索引,根据索引和图例组可获得特定的图例类

ITOCControl接口的HitTest()方法可以返回TOCControl中点击坐标点处的对象类型ItemType。esriTOCControlItem类型对应的关系如下表:

对象说明
esriTOCControlItemNone0没有对象
esriTOCControlItemMap1Map对象
esriTOCControlItemLayer2Layer对象
esriTOCControlItemHeading3对象的标题
esriTOCControlItemLegendClass4LegendClass

 

 

 

 

 

 

 

三、实现思路

1)在TOCControl中,当鼠标点击时即在OnMouseDown事件中,拾取需要调整的图层,当鼠标弹起时即OnMouseUp事件中,获得图层移到位置的图层索引号。

2)使用IMap接口提供MoveLayer方法,将需要调整显示顺序的图层移动目标位置。

3)使用TOCControl的Update()方法,更新TOCControl控件中的图层顺序。


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值