阅读:1760回复:0
用IIDentifyObj 闪烁时异常 "尚未实现"
<P>代码如下: </P>
<P>ESRI.ArcGIS.Geometry.IEnvelope env = new ESRI.ArcGIS.Geometry.EnvelopeClass();<BR> env = m_mapCtrl.ActiveView.Extent;<BR> env.Height = env.Width = 100;<BR> env.CenterAt( m_mapCtrl.ActiveView.ScreenDisplay.DisplayTransformation.ToMapPoint(X,Y) );</P> <P> for( int i=0;i<m_mapCtrl.Map.LayerCount;++i )<BR> {<BR> ESRI.ArcGIS.Carto.ILayer layer = m_mapCtrl.get_Layer( i );<BR> if( layer.Visible == false )<BR> continue;</P> <P> ESRI.ArcGIS.Carto.IIdentify identify = layer as ESRI.ArcGIS.Carto.IIdentify;<BR> if( identify == null )<BR> {<BR> System.Diagnostics.Debug.WriteLine( "\t图层无法转换为有效的查询接口" ); <BR> continue;<BR> }</P> <P> ESRI.ArcGIS.esriSystem.IArray array = identify.Identify( env );<BR> if( array == null || array.Count == 0 )<BR> {<BR> continue;<BR> }<BR> </P> <P> ESRI.ArcGIS.Carto.IFeatureIdentifyObj fiobj = null;<BR> for( int j=0;j<array.Count;++j )<BR> {<BR> fiobj = array.get_Element(j) as ESRI.ArcGIS.Carto.IFeatureIdentifyObj;<BR> ESRI.ArcGIS.Carto.IIdentifyObj iobj = fiobj as ESRI.ArcGIS.Carto.IIdentifyObj;</P> <P> try<BR> { <BR> iobj.Flash( m_mapCtrl.ActiveView.ScreenDisplay );//这一句发生异常<BR> }<BR> catch( Exception ex )<BR> {<BR> System.Windows.Forms.MessageBox.Show( ex.ToString() );<BR> }<BR> }<BR></P> <P>请大家指点!:)</P> |
|