阅读:1858回复:4
关于symbolselector对话框
<P>我想用程序调出一个系统的symbolselector对话框,并把结果返回我要修改的那个对象中,下面的代码显示了symbolselector对话框,但是,结果并没有再toc或者map中显示。请教各位高手 该怎么做啊
Set pFc = player Set m_pSymbol = pFc.SelectionSymbol</P> <P> If m_pSymbol Is Nothing Then Exit Sub Dim pSymbolSelector As ISymbolSelector Set pSymbolSelector = New SymbolSelector If pSymbolSelector.AddSymbol(m_pSymbol) Then If pSymbolSelector.SelectSymbol(Me.hWnd) Then Set m_pSymbol = pSymbolSelector.GetSymbolAt(0) </P> |
|
1楼#
发布于:2005-03-24 09:24
<P> TOCControl1.Update</P><P>pmap.activeview.Refresh</P><P>刷新视图</P><P>附加代码:</P><P> 'Determine what kind of item has been clicked on
TOCControl1.HitTest x, y, pItem, pMap, pLayer, pOther, pIndex 'Only layer items can have their labels edited If pItem = esriTOCControlItemLayer Then '点中的是图层 Set pSelSymLayer = pLayer ElseIf pItem = esriTOCControlItemLegendClass Then '点中的是图例 Dim pGeoFeatureLayer As IGeoFeatureLayer Set pGeoFeatureLayer = pLayer If TypeOf pGeoFeatureLayer.Renderer Is ISimpleRenderer Then Dim pSimpleRenderer As ISimpleRenderer Set pSimpleRenderer = pGeoFeatureLayer.Renderer Dim pSymbolSelector As ISymbolSelector Set pSymbolSelector = New SymbolSelector pSymbolSelector.AddSymbol pSimpleRenderer.Symbol pSymbolSelector.SelectSymbol Me.hwnd Dim pSymbolNew As ISymbol Set pSymbolNew = pSymbolSelector.GetSymbolAt(0) If Not pSymbolNew Is Nothing Then Set pSimpleRenderer.Symbol = pSymbolNew Call RefreshMap End If Set pSymbolSelector = Nothing ElseIf TypeOf pGeoFeatureLayer.Renderer Is IUniqueValueRenderer Then Dim pLengendGroup As ILegendGroup Dim pLegendClass As ILegendClass Set pLengendGroup = New LegendGroup Set pLegendClass = pLengendGroup.Class(CLng(pIndex)) Dim pSymbolSel As ISymbolSelector Set pSymbolSel = New SymbolSelector pSymbolSel.AddSymbol pLegendClass.Symbol '当选择一个新的symbol If pSymbolSel.SelectSymbol(0) Then Set pLegendClass.Symbol = pSymbolSel.GetSymbolAt(0) TOCControl1.Update Call RefreshMap End If Set pSymbolSel = Nothing End If</P> |
|
|
2楼#
发布于:2005-03-24 09:26
<b>symbolselector对话框</b>
ArcEngine并不支持这个对话框,显然如果用它开发,这个对话框是调用不了的,必须自己来做 |
|
|
3楼#
发布于:2005-03-24 23:20
谢谢大侠
|
|
4楼#
发布于:2005-04-10 00:42
<P>再次请教,是不是unique symbol ,chartsymbol 和其他的symbol都可以用同样的方法实现?</P>
|
|