阅读:2256回复:2
请教IBallonCallOut接口
请问用IBallonCallOut接口做出的标注为什么显示不出来?如果能显示出来,显示出来又是什么样子?
|
|
1楼#
发布于:2007-08-21 21:55
代码如下
IPoint pPoint=new PointClass();<BR> pPoint.PutCoords(200,200);<BR> IRgbColor pRgbColor;<BR> pRgbColor = new RgbColorClass();<BR> pRgbColor.Red = 255;<BR> ISimpleFillSymbol pSmplFill = new SimpleFillSymbolClass();<BR> pSmplFill.Color = pRgbColor as IColor;<BR> pSmplFill.Style = esriSimpleFillStyle.esriSFSSolid;<BR> IBalloonCallout pBllnCallout;<BR> pBllnCallout = new BalloonCalloutClass();<BR> pBllnCallout.Style = esriBalloonCalloutStyle.esriBCSRectangle;<BR> pBllnCallout.Symbol = pSmplFill as IFillSymbol;<BR> pBllnCallout.AnchorPoint = pPoint;<BR> IActiveView pActiveView = this.axMapControl1.Map as IActiveView;<BR> pActiveView.Refresh(); |
|
2楼#
发布于:2007-08-21 22:01
<P>这是我在网上找的一个关于添加注记的函数,我照此方法做了,并且创建了标注层,但是还是没有显示出任何结果,请问是怎么回事?创建标注层的时候有什么注意的地方?谢谢,请帮帮忙。<BR><BR><BR><BR>注记层可以通过ArcCatalog去建,但是注意,注记层只能在GeoDataBase中存在。</P>
<P>向上加要素,你可去差一下帮助中的IFDOGraphicsLayer这个接口。我可以给你提供一下程序。</P> <P><BR>'********************************<BR>'** **<BR>'** 添加标注 **<BR>'** **<BR>'********************************<BR>Public Sub AddAnnotation(ByVal x As Double, y As Double, pFeatureLayer As IFeatureLayer)<BR> <BR> Dim str As String<BR> Dim pElement As IElement<BR> Dim pTextElement As ITextElement<BR> Dim pFillColor As IRgbColor, pLineColor As IRgbColor<BR> Dim pFillSymbol As IFillSymbol<BR> Dim pLineSymbol As ILineSymbol<BR> Dim pBalloonCallout As IBalloonCallout<BR> Dim pFormattedTextSymbol As IFormattedTextSymbol<BR> Dim pPoint As IPoint, pTextPoint As IPoint<BR> Dim pFeatureClass As IFeatureClass<BR> Dim pFeature As IFeature<BR> Dim pFDOGraphicsLayer As IFDOGraphicsLayer<BR> <BR> str = Trim(InputBox("请输入注记名称:", "添加注记"))<BR> '判断输入的主机是否为空<BR> If str = "" Then<BR> MsgBox "注记不许为空!", vbApplicationModal + vbOKOnly, "警告"<BR> Exit Sub<BR> End If<BR> <BR> Set pPoint = New Point<BR> pPoint.PutCoords x, y<BR> <BR>'******************************************************************************<BR> '对textSymbol的BackGround进行设置 **<BR> '**<BR> Set pFillColor = New RgbColor '**<BR> With pFillColor '**<BR> .Red = 28 '**<BR> .Green = 233 '**<BR> .Blue = 78 '**<BR> End With '**<BR> '**<BR> Set pLineColor = New RgbColor '**<BR> With pLineColor '**<BR> .Red = 0 '**<BR> .Green = 0 '**<BR> .Blue = 0 '**<BR> End With '**<BR> Set pLineSymbol = New SimpleLineSymbol '**<BR> pLineSymbol.Color = pLineColor '**<BR> pLineSymbol.Width = 1 '**<BR> '**<BR> Set pFillSymbol = New SimpleFillSymbol '**<BR> pFillSymbol.Color = pFillColor '**<BR> pFillSymbol.Outline = pLineSymbol '**<BR> '**<BR> Set pBalloonCallout = New BalloonCallout '**<BR> pBalloonCallout.Style = esriBCSRoundedRectangle '**<BR> pBalloonCallout.AnchorPoint = pPoint '**<BR> Set pBalloonCallout.Symbol = pFillSymbol '**<BR> '**<BR>'******************************************************************************<BR> <BR> '对textSymbol的设置<BR> Set pFormattedTextSymbol = New TextSymbol<BR> Set pFormattedTextSymbol.Background = pBalloonCallout<BR> pFormattedTextSymbol.Font.Name = "宋体"<BR> pFormattedTextSymbol.Size = 10<BR> pFormattedTextSymbol.HorizontalAlignment = esriTHACenter<BR> pFormattedTextSymbol.TypeSetting = True<BR> <BR> Set pTextElement = New TextElement<BR> pTextElement.Text = str<BR> pTextElement.ScaleText = True<BR> pTextElement.Symbol = pFormattedTextSymbol<BR> <BR> Set pTextPoint = New Point<BR> pTextPoint.PutCoords x + 0.0005, y + 0.0002<BR> <BR> Set pElement = pTextElement<BR> pElement.Geometry = pTextPoint<BR> <BR> '进行创建新的要素<BR> Set pFeatureClass = pFeatureLayer.FeatureClass<BR> Set pFeature = pFeatureClass.CreateFeature<BR> <BR> Set pFDOGraphicsLayer = New FDOGraphicsLayer<BR> Set pFDOGraphicsLayer = pFeatureLayer</P> <P> pFDOGraphicsLayer.BeginAddElements<BR> pFDOGraphicsLayer.DoAddFeature pFeature, pElement, 0<BR> pFDOGraphicsLayer.EndAddElements<BR> <BR> Frm_main.MapControl1.ActiveView.PartialRefresh esriViewGraphics, Nothing, Nothing<BR> <BR> Set pPoint = Nothing<BR> Set pTextPoint = Nothing<BR> Set pTextElement = Nothing<BR> Set pFormattedTextSymbol = Nothing<BR> Set pFDOGraphicsLayer = Nothing<BR> Set pFillColor = Nothing<BR> Set pLineColor = Nothing<BR> Set pBalloonCallout = Nothing<BR> Set pLineSymbol = Nothing<BR> Set pFillSymbol = Nothing<BR> <BR>End Sub<BR></P> |
|