ArcGIS Engine没有提供在MapControl中点击查询的命令,只是提供了ReaderControl中的使用的点击查询的命令,下面的代码就是实现点击查询并闪烁的代码。
过程描述
Private Sub MapControl1_OnMouseDown(ByVal button As Long, ByVal shift As Long, ByVal x As Long, ByVal y As Long, ByVal mapX As Double, ByVal mapY As Double)Dim pMap As IMapDim i As IntegerDim pPoint As IPointSet pMap = MapControl1.MapSet pPoint = MapControl1.ActiveView.ScreenDisplay.DisplayTransformation.ToMapPoint(x, y)Dim pIdentify As IIdentifyDim pIDArray As IArrayDim pFeatIdObj As IFeatureIdentifyObjDim pIdObj As IIdentifyObjSet pIdentify = pMap.Layer(1)Dim pEnv As IEnvelopeSet pEnv = New EnvelopeSet pEnv = MapControl1.ActiveView.ExtentpEnv.Height = 100pEnv.Width = 100pEnv.CenterAt pPointSet pIDArray = pIdentify.Identify(pEnv)If Not pIDArray Is Nothing ThenSet pFeatIdObj = pIDArray.Element(0)Set pIdObj = pFeatIdObjpIdObj.Flash MapControl1.ActiveView.ScreenDisplay'消息显示查询目标的信息MsgBox "Layer:" & pIdObj.Layer.Name & vbNewLine & "Feature:" & pIdObj.NameElseMsgBox "No feature identified."End IfEnd Sub