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/

  • 相关阅读:
    团队作业(二):项目选题
    今天准备正式开博了!专注于Silverlight!
    ORA01033:ORACLE initialization or shutdown in progress 错误的解决办法
    寻找正在应用和准备学习XNAor3D技术的志同道合的伙伴,大家能够互帮互助,共同探讨,最好能够组成较固定的小团队!
    TNS: could not resolve the connect identifier specified
    今天连接字符串出现了“ORA01008: 并非所有变量都已绑定”错误
    选择HttpHandler还是HttpModule?
    jQuerymenuaim.js
    MVP解读
    揭秘Amazon反应速度超快的下拉菜单
  • 原文地址:https://www.cnblogs.com/wenjl520/p/1352134.html
Copyright © 2011-2022 走看看