ldj
ldj
路人甲
路人甲
  • 注册日期2003-10-19
  • 发帖数161
  • QQ
  • 铜币737枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:966回复:3

[求助]择事件发生时,得到选择图元

楼主#
更多 发布于:2005-09-08 10:08
<P>vb+arcEngine在mapcontrol中,当选择事件发生时,得到选择图元</P>
<P>如何得到图元所在的图层</P>
<P>代码如下:</P>
<P>Dim pmap As IMap<br>   Set pmap = MapControl1.Map<br>   Dim pEnumFeature As IEnumFeature<br>   Dim pObjectClass As IObjectClass<br>   Dim pFeatureClass As FeatureClass<br>   ' pEnumFeature.Reset<br>   Set pEnumFeature = pmap.FeatureSelection<br>   Dim pFeature As IFeature<br>   pEnumFeature.Reset<br>   Set pFeature = pEnumFeature.Next</P>
<P>   If Not pFeature Is Nothing Then</P>
<P>   Set pObjectClass = pFeature.Class<br>    Set pFeatureClass = pObjectClass<br>    Dim pFeatureLayer As IFeatureLayer<br>     <br>    Set pFeature = pEnumFeature.Next<br>    End If<br>    MapControl1.ActiveView.Refresh</P>
<P>  pFeatureClass 的属性为空,请各位高手帮忙,谢谢!! </P>
喜欢0 评分0
kisssy
卧底
卧底
  • 注册日期2004-04-18
  • 发帖数235
  • QQ
  • 铜币614枚
  • 威望2点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2005-09-08 10:54
<P>Set pObjectClass = pFeature.Class<BR>Set pFeatureClass = pObjectClass</P>
<P>没人会这么写吧</P>
<P>不知道为什么用Set pEnumFeature = pmap.FeatureSelection</P>
<P>我觉得应该</P>
<P>dim pFeatureSelection as IFeatureSelection</P>
<P>set pFeatureSelection=pFeatureLayer</P>
<P>Set pEnumFeature=pFeatureSelection</P>
个人专栏: https://zhuanlan.zhihu.com/c_165676639
举报 回复(0) 喜欢(0)     评分
ldj
ldj
路人甲
路人甲
  • 注册日期2003-10-19
  • 发帖数161
  • QQ
  • 铜币737枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2005-09-08 11:23
<P>Set pEnumFeature = pmap.FeatureSelection  必须这样写</P>
<P>否则,抱错,</P>
<P> Dim pFeatureSelection As IFeatureSelection<BR>    ‘Dim pFeatureLayer As IFeatureLayer<BR>   ' pEnumFeature.Reset<BR>   Set pFeatureSelection = pmap.FeatureSelection</P>
<P>也不对</P>
<P>欢迎各位高手指点</P>
举报 回复(0) 喜欢(0)     评分
kisssy
卧底
卧底
  • 注册日期2004-04-18
  • 发帖数235
  • QQ
  • 铜币614枚
  • 威望2点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2005-09-08 14:02
抱歉
<P>Set pEnumFeature=pFeatureSelection是不对。</P>
<P>Set pEnumFeature = pmap.FeatureSelection  必须这样写????</P>
<P>也不是必须吧,不是必须走你这条路吧。</P>
<P>  Set pEnumLayer = pMap.Layers</P>
<P>  pEnumLayer.Reset<BR>  Set pFeatureLayer = pEnumLayer.Next<BR>  Do While Not pFeatureLayer Is Nothing<BR>    'Loop through the selected features per layer<BR>    Set pFeatureSelection = pFeatureLayer 'QI<BR>    Set pSelectionSet = pFeatureSelection.SelectionSet<BR>    'Can use Nothing keyword if you don't want to draw them,<BR>    'otherwise, the spatial reference might not match the Map's<BR>    pSelectionSet.Search Nothing, False, pFeatureCursor<BR>    Set pFeature = pFeatureCursor.NextFeature<BR>    Do While Not pFeature Is Nothing<BR>      'Do something with the feature<BR>      <BR>      Set pFeature = pFeatureCursor.NextFeature<BR>    Loop<BR>    Set pFeatureLayer = pEnumLayer.Next<BR>  Loop<BR></P>
个人专栏: https://zhuanlan.zhihu.com/c_165676639
举报 回复(0) 喜欢(0)     评分
游客

返回顶部