zoukankan      html  css  js  c++  java
  • AE创建气泡式的提示框(VB.Net和C#源码)

     
     下面是用AE创建气泡式提示框的方法:
      
     1、VB.Net源码

      ''' <summary>
      ''' 创建文本提示框
      ''' </summary>
      ''' <param name="x">提示框标识的位置X坐标</param>
      ''' <param name="y">提示框标识的位置Y坐标</param>
      ''' <param name="pTextString">提示框中显示的文本</param>
      ''' <param name="pPoint">提示框箭头指向的点</param>
      ''' <param name="pGraphicsContainer">包含提示框的graphicscontainer</param>
      ''' <returns></returns>
      ''' <remarks></remarks>

      Public Function CreateTextElement(ByVal x As Double, ByVal y As Double, ByVal pTextString As String, Optional ByVal pPoint As IPoint = Nothing, Optional ByVal pGraphicsContainer As IGraphicsContainer = Nothing) As IElement
        Dim pElement As IElement = New MarkerElementClass()
        Dim pTElement As IElement = New TextElementClass()
        Dim pTextSymbol As IFormattedTextSymbol = New TextSymbolClass()
        Dim pBalloonCallout As IBalloonCallout = CreateBalloonCallout(x, y)
        Dim pColor As IRgbColor = New RgbColorClass()
        pColor.Red = 150
        pColor.Green = 0
        pColor.Blue = 0
        pTextSymbol.Color = pColor
        Dim pTextBackground As ITextBackground
        pTextBackground = pBalloonCallout
        pTextSymbol.Background = pTextBackground
        pTextSymbol.Size = 8
        CType(pTElement, ITextElement).Symbol = pTextSymbol
        CType(pTElement, ITextElement).Text = pTextString
        If pPoint Is Nothing Then pPoint = New Point : pPoint.PutCoords(x + Const_Dis, y + Const_Dis)
        pTElement.Geometry = pPoint
        pGraphicsContainer.AddElement(pTElement, 1)
        Return pTElement
      End Function

      ''' <summary>
      ''' 创建balloon型提示框
      ''' </summary>
      ''' <param name="x">提示框所在位置X坐标</param>
      ''' <param name="y">提示框所在位置Y坐标</param>
      ''' <returns></returns>
      ''' <remarks></remarks>

      Public Function CreateBalloonCallout(ByVal x As Double, ByVal y As Double) As IBalloonCallout
        Dim pRgbClr As IRgbColor = New RgbColorClass()
        pRgbClr.Red = 255
        pRgbClr.Blue = 255
        pRgbClr.Green = 255
        Dim pSmplFill As ISimpleFillSymbol = New SimpleFillSymbolClass()
        pSmplFill.Color = pRgbClr
        pSmplFill.Style = esriSimpleFillStyle.esriSFSSolid
        Dim pBllnCallout As IBalloonCallout = New BalloonCalloutClass()
        pBllnCallout.Style = esriBalloonCalloutStyle.esriBCSRoundedRectangle
        pBllnCallout.Symbol = pSmplFill
        pBllnCallout.LeaderTolerance = 1
        Dim pPoint As IPoint = New ESRI.ArcGIS.Geometry.PointClass()
        pPoint.X = x
        pPoint.Y = y
        pBllnCallout.AnchorPoint = pPoint
        Return pBllnCallout
      End Function


      2、C#源码
     
           public void CreateTextElment(double x, double y)
            {
                IPoint pPoint = new PointClass();
                IMap pMap = axMapControl1.Map;
                IActiveView pActiveView = pMap as IActiveView;
                IGraphicsContainer pGraphicsContainer;
                IElement pElement = new MarkerElementClass();
                IElement pTElement = new TextElementClass();
                pGraphicsContainer = (IGraphicsContainer)pActiveView;
                IFormattedTextSymbol pTextSymbol = new TextSymbolClass();
                IBalloonCallout pBalloonCallout = CreateBalloonCallout(x, y);
                IRgbColor pColor = new RgbColorClass();
                pColor.Red = 150;
                pColor.Green = 0;
                pColor.Blue = 0;
                pTextSymbol.Color = pColor;
                ITextBackground pTextBackground;
                pTextBackground = (ITextBackground)pBalloonCallout;
                pTextSymbol.Background = pTextBackground;
                ((ITextElement)pTElement).Symbol = pTextSymbol;
                ((ITextElement)pTElement).Text = "测试";
                pPoint.X = x + 42;
                pPoint.Y = y + 42;
                pTElement.Geometry = pPoint;
                pGraphicsContainer.AddElement(pTElement, 1);
                pActiveView.PartialRefresh(esriViewDrawPhase.esriViewGraphics, null, null);
            }
           
            public IBalloonCallout CreateBalloonCallout(double x, double y)
            {
                IRgbColor pRgbClr = new RgbColorClass();
                pRgbClr.Red = 255;
                pRgbClr.Blue = 255;
                pRgbClr.Green = 255;
                ISimpleFillSymbol pSmplFill = new SimpleFillSymbolClass();
                pSmplFill.Color = pRgbClr;
                pSmplFill.Style = esriSimpleFillStyle.esriSFSSolid;
                IBalloonCallout pBllnCallout = new BalloonCalloutClass();
                pBllnCallout.Style = esriBalloonCalloutStyle.esriBCSRectangle;
                pBllnCallout.Symbol = pSmplFill;
                pBllnCallout.LeaderTolerance = 1;
                IPoint pPoint = new ESRI.ArcGIS.Geometry.PointClass();
                pPoint.X = x;
                pPoint.Y = y;
                pBllnCallout.AnchorPoint = pPoint;
                return pBllnCallout;
            }

    版权说明

      如果标题未标有<转载、转>等字则属于作者原创,欢迎转载,其版权归作者和博客园共有。
      作      者:温景良
      文章出处:http://wenjl520.cnblogs.com/  或  http://www.cnblogs.com/

  • 相关阅读:
    使用urllib
    spring常用的45个注解
    音痴
    android与JS函数传参遗留问题
    方舟编译器源码过一遍流程
    什么是语义学,解释器
    synchronized,ReentrantLock解决锁冲突,脏读的问题
    【Unity3d】ScrollRect自动定位到某点
    计算点到直线的距离】 C#实现
    理财-房月供占工资多少比较合适?
  • 原文地址:https://www.cnblogs.com/wenjl520/p/1352134.html
Copyright © 2011-2022 走看看