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類型對應的關系如下表:

對象 說明
esriTOCControlItemNone 0 沒有對象
esriTOCControlItemMap 1 Map對象
esriTOCControlItemLayer 2 Layer對象
esriTOCControlItemHeading 3 對象的標題
esriTOCControlItemLegendClass 4 LegendClass

 

 

 

 

 

 

 

三、實現思路

1)在TOCControl中,當鼠標點擊時即在OnMouseDown事件中,拾取需要調整的圖層,當鼠標彈起時即OnMouseUp事件中,獲得圖層移到位置的圖層索引號。

2)使用IMap接口提供MoveLayer方法,將需要調整顯示順序的圖層移動目標位置。

3)使用TOCControl的Update()方法,更新TOCControl控件中的圖層順序。


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM