利用AE提供的IIdentifyDialog,创建class identifyTool 。然后在程序里面就可以在鼠标点击按钮功能下,模拟实现ArcMap工具里面 Identify功能。
类生成代码如下:
1
public
sealed
class
identifyTool : BaseTool
2
{
3
IHookHelper pHookHelper = new HookHelperClass();
4
public identifyTool()
5
{
6
m_cursor = new System.Windows.Forms.Cursor(@"..\..\Resources\Identify_md.cur");
7![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
8
}
9![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
10
public override void OnCreate(object hook)
11
{
12
pHookHelper.Hook = hook;
13
}
14
public override void OnMouseDown(int Button, int Shift, int X, int Y)
15
{
16![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
17
IActiveView pActiveView;
18
IIdentifyDialog pIdentifyDialog;
19
IIdentifyDialogProps pIdentifyDialogProps;
20
IEnumLayer pEnumLayer;
21
ILayer pLayer;
22![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
23
pActiveView = pHookHelper.ActiveView;
24![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
25
pIdentifyDialog = new IdentifyDialogClass();
26
pIdentifyDialogProps = pIdentifyDialog as IIdentifyDialogProps;
27
pIdentifyDialog.Map = pHookHelper.ActiveView.FocusMap;
28
pIdentifyDialog.Display = pActiveView.ScreenDisplay;
29![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
30
pIdentifyDialog.ClearLayers();
31![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
32
pEnumLayer = pIdentifyDialogProps.Layers;
33
pEnumLayer.Reset();
34
pLayer = pEnumLayer.Next();
35
while (pLayer != null)
36
{
37
pIdentifyDialog.AddLayerIdentifyPoint(pLayer, X, Y);
38
pLayer = pEnumLayer.Next();
39
}
40
pIdentifyDialog.Show();
41
}
42
}
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
3
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
4
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
5
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
6
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
7
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
8
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
9
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
10
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
11
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
12
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
13
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
14
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
15
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
16
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
17
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
18
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
19
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
20
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
21
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
22
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
23
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
24
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
25
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
26
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
27
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
28
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
29
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
30
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
31
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
32
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
33
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
34
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
35
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
36
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
37
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
38
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
39
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
40
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
41
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
42
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
其中 m_cursor用来设置鼠标样式。
IIdentifyDialog要设置其Map和Display属性。
(参考ESRI中国社区)