VBA+AO常用代码
VBA+AO常用代码
ArcMap 定制
Zoom Pan
Zoomin
功能:放大,通过一跟踪矩形
具体实现:新添一 UIcontrol:zoomin
Private Sub zoomin_MouseDown(ByVal button As Long, ByVal shift As Long, ByVal x As Long,
ByVal y As Long)
Dim mxdoc As IMxDocument
Dim pa As IActiveView
Dim pdis As IScreenDisplay
Dim pr As IRubberBand
Dim pEnv As IEnvelope
pa.Extent = pEnv
pa.Refresh
End Sub
FixedZoomin
功能:鼠标点击放大,以点击为中心,放大到原来的 2 倍
具体实现:新添一 UIcontrol:Fixedzoomin
pa.Extent = pev
pa.Refresh
End Sub
Zoomout
功能:缩小
具体实现:新添一 UIcontrol:zoomout
Private Sub zoomout_MouseDown(ByVal button As Long, ByVal shift As Long, ByVal x As Long,
ByVal y As Long)
Dim mxdoc As IMxDocument
Dim pa As IActiveView
Dim pdis As IScreenDisplay
Dim pr As IRubberBand
Dim pEnv As IEnvelope
Dim pp As IPoint
ZoomtoLayer
功能:缩放到选择要素
具体实现:新添一 UIcontrol:zoomtoLayer
Dim pGeoDataset As IGeoDataset
Set pGeoDataset = pLayer
pActiveView.Extent = pGeoDataset.Extent
pActiveView.Refresh
Full Extent
功能:全图显示
具体实现:新添一 Module,添加函数:fullextent
pa.Extent = pa.fullextent
pa.Refresh
End Sub
Rotate
功能:旋转
具体实现:新添一 UIcontrol:Rotate
Private Sub rotate_MouseDown(ByVal button As Long, ByVal shift As Long, ByVal x As Long,
ByVal y As Long)
Dim mxdoc As IMxDocument
Dim pa As IActiveView
Dim pdis As IScreenDisplay
Set mxdoc = Application.Document
Set pa = mxdoc.FocusMap
Set pdis = pa.ScreenDisplay
pdis.TrackRotate
End Sub
Pan
功能:漫游
具体实现:新添一 UIcontrol:Pan
Private Sub pan_MouseDown(ByVal button As Long, ByVal shift As Long, ByVal x As Long,
ByVal y As Long)
Dim mxdoc As IMxDocument
Dim pa As IActiveView
Dim pdis As IScreenDisplay
Set mxdoc = Application.Document
Set pa = mxdoc.FocusMap
Set pdis = pa.ScreenDisplay
pdis.TrackPan
End Sub
Panwest
功能:向西漫游
具体实现:新添一 UIcontrol:PanWest
Private Sub panwest_MouseDown(ByVal button As Long, ByVal shift As Long, ByVal x As Long,
ByVal y As Long)
Const panfactor = 0.25
Dim mxdoc As IMxDocument
Dim pa As IActiveView
Set mxdoc = Application.Document
Set pa = mxdoc.FocusMap
Dim penv As IEnvelope
Set penv = pa.Extent
Dim xmin As Double, xmax As Double, ymin As Double, ymax As Double