⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form1.frm

📁 ao+vb实现鹰眼功能代码。很简单很便捷。欢迎大家下载
💻 FRM
字号:
VERSION 5.00
Object = "{370A8DDA-7915-42DC-B4A1-77662C82B046}#1.0#0"; "TOCControl.ocx"
Object = "{C552EA90-6FBB-11D5-A9C1-00104BB6FC1C}#1.0#0"; "MapControl.ocx"
Object = "{B7D43581-3CBC-11D6-AA09-00104BB6FC1C}#1.0#0"; "ToolbarControl.ocx"
Begin VB.Form Form1 
   Caption         =   "GxDialog对象示例"
   ClientHeight    =   5685
   ClientLeft      =   165
   ClientTop       =   555
   ClientWidth     =   9615
   LinkTopic       =   "Form1"
   ScaleHeight     =   5685
   ScaleWidth      =   9615
   StartUpPosition =   3  'Windows Default
   Begin esriToolbarControl.ToolbarControl ToolbarControl1 
      Height          =   390
      Left            =   120
      OleObjectBlob   =   "Form1.frx":0000
      TabIndex        =   3
      Top             =   120
      Width           =   5895
   End
   Begin esriTOCControl.TOCControl TOCControl1 
      Height          =   2895
      Left            =   120
      OleObjectBlob   =   "Form1.frx":015D
      TabIndex        =   2
      Top             =   600
      Width           =   2535
   End
   Begin esriMapControl.MapControl SmallMap 
      Height          =   1935
      Left            =   120
      OleObjectBlob   =   "Form1.frx":01C7
      TabIndex        =   0
      Top             =   3600
      Width           =   2535
   End
   Begin esriMapControl.MapControl MapMain 
      Height          =   4935
      Left            =   2760
      OleObjectBlob   =   "Form1.frx":0889
      TabIndex        =   1
      Top             =   600
      Width           =   6615
   End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Private Sub Form_Load()
'Dim i As IAoInitialize
'Set i = New AoInitialize
'i.Initialize (esriLicenseProductCodeEngine)
  Me.MapMain.AddShapeFile "D:\代码整理\data\Shapefile", "分市州"
  Me.MapMain.AddShapeFile "D:\代码整理\data\Shapefile", "县界"
  Me.ToolbarControl1.SetBuddyControl Me.MapMain
  Me.TOCControl1.SetBuddyControl Me.MapMain
  Call SmallMap_UpDateData
End Sub
Private Sub SmallMap_UpDateData()
    '当主地图装载、卸载了数据或当主地图的图层顺序改变时,
    '调用次函数更新鹰眼图中的数据
    Dim i As Integer
    Dim count As Integer
    With Me.MapMain
      count = .LayerCount
      For i = 0 To count - 1
         '这里注意,一定要保证两个地图控件中,图层顺序一致
         Me.SmallMap.AddLayer .Layer(i), i
      Next
    End With
    Me.SmallMap.Extent = Me.SmallMap.FullExtent
End Sub
Private Sub DrawViewRectInSmallMap(ByVal pEnv As IEnvelope)
  '调用此方法在鹰眼中绘制一个红色的矩形方框,来标识视图在
  '地图中的位置
  Dim pCurEnv As IEnvelope
  Dim pGContainer As IGraphicsContainer
  Dim pActView As IActiveView
  Dim pElement As IElement
  Dim pFillElement As IFillShapeElement
  Dim pColor As IColor
  Dim pOutLine As ILineSymbol
  Dim pFillSymbol As IFillSymbol

  Set pCurEnv = pEnv                    '获得主地图的视图范围
  Set pGContainer = Me.SmallMap.Map     '设置GraphicsContainer
  Set pActView = Me.SmallMap.ActiveView '获得视图对象,用于刷新
  pGContainer.DeleteAllElements
  
  Set pElement = New RectangleElement   '创建要绘制的Element
   pElement.Geometry = pCurEnv
  
  '设置矩形的的填充色[红色],即显示在鹰眼上的红色方框线的颜色
  Set pColor = New RgbColor
  pColor.RGB = 255 '红色
  '设置矩形的边框
  Set pOutLine = New SimpleLineSymbol
  With pOutLine
     .Width = 1
     .Color = pColor
  End With
  
  '把矩形的填充色设置为透明
  Set pColor = New RgbColor
  pColor.Transparency = 0
  
  '设置面填充的符号,用于填充矩形
  Set pFillSymbol = New SimpleFillSymbol
  With pFillSymbol
     .Color = pColor
     .Outline = pOutLine
  End With
  
  Set pFillElement = pElement
  pFillElement.Symbol = pFillSymbol
  '绘制矩形方框
  pGContainer.AddElement pElement, 0
  pActView.PartialRefresh esriViewGraphics, Nothing, Nothing
End Sub

Private Sub MapMain_OnExtentUpdated(ByVal displayTransformation As _
Variant, ByVal sizeChanged As Boolean, ByVal newEnvelope As Variant)
  Call DrawViewRectInSmallMap(newEnvelope)
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -