pageLayoutControl与Mapcontrol同步(VB)

Option Explicit

Implements esriCarto.IMaps

Public m_Collection As Collection

Private Sub Class_Initialize()

  Set m_Collection = New Collection

End Sub

'----------------IMaps接口的方法及属性的实现--------------------

'得到collection中的元素的个数

Private Property Get IMaps_Count() As Long

  IMaps_Count = m_Collection.count

End Property

'通过指定索引得到map

Private Property Get IMaps_Item(ByVal mapIndex As Long) As IMap

  If mapIndex > m_Collection.count Or mapIndex < 0 Then

    MsgBox "BSMaps::Item:\r\n索引超出界限!"

    Exit Property

  End If

  Set IMaps_Item = m_Collection.Item(mapIndex + 1)

End Property

'向集合中添加map对象

Private Sub IMaps_Add(ByVal map As IMap)

  If isNull(map) Or map Is Nothing Then

    MsgBox "Maps::Add:\r\n对象还没有初始化!"

    Exit Sub

  End If

  m_Collection.Add map

End Sub

'新建一个Map对象

Private Function IMaps_Create() As IMap

  Dim newMap As IMap

  Set newMap = New map

  m_Collection.Add newMap

  Set IMaps_Create = newMap

End Function

'清除collection中所有元素

Private Sub IMaps_reset()

  Dim idx As Integer

  For idx = 1 To m_Collection.count

    m_Collection.Remove idx

  Next idx

End Sub

'通过指定索引移除map

Private Sub IMaps_remove(ByVal map As IMap)

  If mapIndex > m_Collection.count Or mapIndex <= 0 Then

    MsgBox "BSMaps::RemoveAt:\r\n索引超出界限!"

    Exit Sub

  End If

  m_Collection.Remove mapIndex

End Sub

Private Sub IMaps_removeAt(ByVal idx As Long)

'

End Sub

原文地址:https://www.cnblogs.com/bluemaplestudio/p/1675168.html