阅读:2755回复:4
请教一下添加图例的问题
<P>请问在PageLayoutControl里面添加图例应该怎么控制啊?好像只能自动添加,那些AddItem,ClearItems好像都没什么用。求路过的各位大哥帮个忙!!</P>
|
|
1楼#
发布于:2009-08-15 09:19
这正是我所遇到的问题,解决了告诉我一声,谢谢了
|
|
2楼#
发布于:2007-04-19 11:16
还真是我搞错了,现在可以了
|
|
3楼#
发布于:2007-04-19 10:40
<P>谢谢总统先生,但是问题是我根本没有往Legend里面AddItem,生成的Legend里面也是所有图层都有,而就算ClearItems,Legend里面的东西都还在,不知道是不是我不会用。</P>
|
|
4楼#
发布于:2007-04-18 21:15
下面的代码是在vba环境使用的,不过应该可以说明下接口的问题<PRE>Option Explicit
Sub Test() Dim pMxDoc As IMxDocument Set pMxDoc = ThisDocument Dim pGCS As IGraphicsContainerSelect Set pGCS = pMxDoc.PageLayout If pGCS.ElementSelectionCount <> 1 Then MsgBox "select a legend first" Exit Sub End If If Not TypeOf pGCS.SelectedElement(0) Is IMapSurroundFrame Then MsgBox "select a legend first" Exit Sub End If Dim pMSF As IMapSurroundFrame Set pMSF = pGCS.SelectedElement(0) If Not TypeOf pMSF.MapSurround Is ILegend Then MsgBox "select a legend first" Exit Sub End If Swap pMSF.MapSurround, 0, 1 End Sub Sub Swap(pLegend As ILegend, ByVal lItem1 As Long, ByVal lItem2 As Long) If (lItem1 <= (pLegend.ItemCount - 1)) And _ (lItem2 <= (pLegend.ItemCount - 1)) Then Debug.Print "before" List pLegend Dim pLegendItem As ILegendItem Set pLegendItem = pLegend.Item(lItem1) pLegend.RemoveItem lItem1 If lItem2 > pLegend.ItemCount - 1 Then pLegend.AddItem pLegendItem Else If lItem1 < lItem2 Then pLegend.InsertItem lItem2, pLegendItem Else pLegend.InsertItem lItem2 - 1, pLegendItem End If End If Debug.Print "after" List pLegend Else MsgBox "bad item index passed to swap " ; pLegend.ItemCount End If End Sub Sub List(pLegend As ILegend) Dim l As Long For l = 0 To pLegend.ItemCount - 1 Debug.Print pLegend.Item(l).Layer.Name Next l End Sub </PRE> |
|
|