zoukankan      html  css  js  c++  java
  • pagelayoutControl中添加图元(VB)

    添加文本,图例,图形比例尺,文字比例尺

    Private Sub insertText_Click()

      Dim pActiveView As IActiveView

      Dim pGraphicsContainer As IGraphicsContainer

      Dim pTextElement As ITextElement, pTextSymbol As ITextSymbol, pColor As IColor

      Dim pElement As IElement, pEnvelope As IEnvelope

      Set pActiveView = pPageLayoutControl.ActiveView

      Set pGraphicsContainer = pPageLayoutControl.PageLayout

      Set pEnvelope = New Envelope

      pEnvelope.PutCoords 0, 0, 20.4, 50.4

      Set pTextElement = New TextElement

      Set pElement = pTextElement

      pElement.Geometry = pEnvelope

      pTextElement.Text = "My Map"

      Set pTextSymbol = New TextSymbol

      Set pColor = New RgbColor

      pColor.RGB = &H8000&

      pTextSymbol.Color = pColor

      pTextSymbol.size = 40

      pTextElement.Symbol = pTextSymbol

      pGraphicsContainer.AddElement pTextElement, 0

      pPageLayoutControl.ActiveView.PartialRefresh esriViewGraphics, Nothing, Nothing

    End Sub

    Private Sub insertLegend_Click()

      Dim pUid As UID, pEnvelope As IEnvelope, pMapSurround As IMapSurround

      Dim m_GraphicsContainer  As IGraphicsContainer, m_MapFrame As IMapFrame

      Dim m_MapSurroundFrame As IMapSurroundFrame, m_Element As IElement, m_TrackCancel As ITrackCancel

      Set pUid = New UID

      pUid.value = "esriCarto.legend"

      Set pEnvelope = New Envelope

      pEnvelope.PutCoords 1, 1, 3.4, 2.4

      Set m_GraphicsContainer = pPageLayoutControl.PageLayout

      Set m_MapFrame = m_GraphicsContainer.FindFrame(pPageLayoutControl.ActiveView.FocusMap)

      Set m_MapSurroundFrame = m_MapFrame.CreateSurroundFrame(pUid, pMapSurround)

      Set m_MapSurroundFrame.MapFrame = m_MapFrame

      m_MapSurroundFrame.MapSurround.name = "legend"

      Set m_Element = m_MapSurroundFrame

      m_Element.Geometry = pEnvelope

      m_Element.Activate pPageLayoutControl.ActiveView.screenDisplay

      Set m_TrackCancel = New CancelTracker

      m_Element.Draw pPageLayoutControl.ActiveView.screenDisplay, m_TrackCancel

      m_GraphicsContainer.AddElement m_Element, 0

      m_Element.Geometry = pEnvelope

      pPageLayoutControl.ActiveView.PartialRefresh esriViewDrawPhase.esriViewGraphics, Nothing, Nothing

    End Sub

    Private Sub insertScalebar_Click()

      Dim pEnvelope As IEnvelope, pMapSurround As IMapSurround

      Dim pStyleGalleryItem As IStyleGalleryItem

      Set pEnvelope = New Envelope

      pEnvelope.PutCoords 1, 1, 3.4, 2.4

      Set pStyleGalleryItem = bgFrmShowElementStyle.getItem(esriStyleClassScaleBars)

      Set pMapSurround = CreateMapSurround(pPageLayoutControl.PageLayout, _

                          pPageLayoutControl.ActiveView.FocusMap, _

                          "ScaleBar", pEnvelope, pPageLayoutControl.ActiveView, pStyleGalleryItem)

      pPageLayoutControl.ActiveView.PartialRefresh esriViewDrawPhase.esriViewGraphics, Nothing, Nothing

    End Sub

    Private Sub insertNorth_Click()

      Dim pEnvelope As IEnvelope, pMapSurround As IMapSurround

      Dim pStyleGalleryItem As IStyleGalleryItem

      Set pEnvelope = New Envelope

      pEnvelope.PutCoords 0.2, 0.2, 3, 3

      Set pStyleGalleryItem = bgFrmShowElementStyle.getItem(esriStyleClassNorthArrows)

      Set pMapSurround = CreateMapSurround(pPageLayoutControl.PageLayout, _

                           pPageLayoutControl.ActiveView.FocusMap, _

                           "NorthArrow", pEnvelope, pPageLayoutControl.ActiveView, pStyleGalleryItem)

      pPageLayoutControl.ActiveView.PartialRefresh esriViewDrawPhase.esriViewGraphics, Nothing, _ Nothing

    End Sub

    Private Sub insertScaleText_Click()

      Dim pEnvelope As IEnvelope, pMapSurround As IMapSurround

      dim pStyleGalleryItem As IStyleGalleryItem

      Set pEnvelope = New Envelope

      pEnvelope.PutCoords 1, 1, 3.4, 2.4

      Set pStyleGalleryItem = bgFrmShowElementStyle.getItem(esriStyleClassScaleTexts)

      Set pMapSurround = CreateMapSurround(pPageLayoutControl.PageLayout, _

                            pPageLayoutControl.ActiveView.FocusMap, _

                            "ScaleText", pEnvelope, pPageLayoutControl.ActiveView, pStyleGalleryItem)

      pPageLayoutControl.ActiveView.PartialRefresh esriViewDrawPhase.esriViewGraphics, Nothing, Nothing

    End Sub

    Private Function CreateMapSurround(m_PageLayout As IPageLayout, m_Map As IMap, _

                              name As String, m_Envelope As IEnvelope, m_ActiveView As IActiveView, _

                              m_styleGalleryItem As IStyleGalleryItem) As IMapSurround

      Dim m_GraphicsContainer  As IGraphicsContainer, m_MapFrame As IMapFrame

      Dim m_MapSurroundFrame As IMapSurroundFrame, m_Element As IElement

      dim m_TrackCancel As ITrackCancel

      Set m_GraphicsContainer = m_PageLayout

      Set m_MapFrame = m_GraphicsContainer.FindFrame(m_Map)

      Set m_MapSurroundFrame = New MapSurroundFrame

      Set m_MapSurroundFrame.MapFrame = m_MapFrame

      Set m_MapSurroundFrame.MapSurround = m_styleGalleryItem.Item

      m_MapSurroundFrame.MapSurround.name = name

      Set m_Element = m_MapSurroundFrame

      m_Element.Geometry = m_Envelope

      m_Element.Activate m_ActiveView.screenDisplay

      Set m_TrackCancel = New CancelTracker

      m_Element.Draw m_ActiveView.screenDisplay, m_TrackCancel

      m_GraphicsContainer.AddElement m_Element, 0

      m_Element.Geometry = m_Envelope

  • 相关阅读:
    linux 进程间通信之pipe
    makefile详解
    makefile基础
    std::list 源代码解析
    各类编译器 allocator 底层
    oop &&GP 模板 ---> 特化和偏特化
    STL Allocator
    关联式容器
    vector::erase
    maven
  • 原文地址:https://www.cnblogs.com/bluemaplestudio/p/1675164.html
Copyright © 2011-2022 走看看