kisssy
卧底
卧底
  • 注册日期2004-04-18
  • 发帖数235
  • QQ
  • 铜币614枚
  • 威望2点
  • 贡献值0点
  • 银元0个
20楼#
发布于:2004-06-10 13:29
<P>Public Sub addlabel()
Dim mxdoc As IMxDocument
Dim mymap As IMap
Dim pGFeatureLayer As IGeoFeatureLayer
Dim pa As IActiveView
Dim pdis As IScreenDisplay
Set mxdoc = Application.Document
Set mymap = mxdoc.FocusMap
Set pa = mxdoc.FocusMap
Set pdis = pa.ScreenDisplay
Set pGFeatureLayer = mymap.Layer(1)           '标注图层</P><P>Dim pAnnProCol As IAnnotateLayerPropertiesCollection
Dim pLabelEngin As ILabelEngineLayerProperties
Set pAnnProCol = pGFeatureLayer.AnnotationProperties</P><P>Dim pBasicOverposterLayerProps As IBasicOverposterLayerProperties
Set pBasicOverposterLayerProps = New BasicOverposterLayerProperties
pBasicOverposterLayerProps.NumLabelsOption = esriBasicNumLabelsOption.esriOneLabelPerShape</P><P>For i = 0 To pAnnProCol.Count - 1
    pAnnProCol.QueryItem i, pLabelEngin
    pLabelEngin.Expression = "[STATE_NAME]"               '标注的字段名</P><P>    'Set pLabelEngin.Symbol = pTextSymbol
    Set pLabelEngin.BasicOverposterLayerProperties = pBasicOverposterLayerProps
Next i
'Dim pCon As ITrackCancel
'Set pCon = New CancelTracker
'pCon.Continue
'pGFeatureLayer.Draw esriDrawPhase.esriDPAnnotation, pdis, pCon</P><P>
pa.Refresh</P><P>End Sub
</P><P>这是VBA的,自己稍微改一下就Ok了</P>
个人专栏: https://zhuanlan.zhihu.com/c_165676639
举报 回复(0) 喜欢(0)     评分
上一页 下一页
游客

返回顶部