如何用代码设置图层在特定比例尺下显示

Option Explicit
Implements ICommand
Implements ICommandSubType
Private m_pHookHelper As IHookHelper
Private m_pMapControl As IMapControl3
Private m_lSubType As Long
Private Sub Class_Initialize()  
  Set m_pHookHelper = New HookHelper  
End Sub
Private Sub Class_Terminate()  
  Set m_pHookHelper = Nothing  
End Sub
Private Property Get ICommand_Enabled() As Boolean  
  Dim bEnabled As Boolean
  bEnabled = True
  Dim pLayer As ILayer
  Set pLayer = m_pMapControl.CustomProperty
  If (m_lSubType = 3) Then
    If (pLayer.MaximumScale = 0) And (pLayer.MinimumScale = 0) Then bEnabled = False
  End If
    ICommand_Enabled = bEnabled
  End Property
Private Property Get ICommand_Checked() As Boolean  
  ICommand_Checked = False  
End Property
Private Property Get ICommand_Name() As String
    ICommand_Name = "ScaleThresholds"  
End Property
Private Property Get ICommand_Caption() As String  
  If (m_lSubType = 1) Then
    ICommand_Caption = "Set Maximum Scale"
  ElseIf (m_lSubType = 2) Then
    ICommand_Caption = "Set Minimum Scale"
  Else
    ICommand_Caption = "Remove Scale Thresholds"
  End If
End Property
Private Property Get ICommand_Tooltip() As String  
  'Not implemented  
End Property
Private Property Get ICommand_Message() As String  
  'Not implemented  
End Property
Private Property Get ICommand_HelpFile() As String
    'Not implemented  
End Property
Private Property Get ICommand_HelpContextID() As Long  
  'Not implemented  
End Property
Private Property Get ICommand_Bitmap() As esriSystem.OLE_HANDLE
    'Not implemented
End Property
Private Property Get ICommand_Category() As String
    'Not implemented
  End Property
Private Sub ICommand_OnCreate(ByVal hook As Object)
  Set m_pHookHelper.hook = hook
  Set m_pMapControl = m_pHookHelper.hook
  End Sub
Private Sub ICommand_OnClick()
    Dim pLayer As ILayer
  Set pLayer = m_pMapControl.CustomProperty
  If (m_lSubType = 1) Then pLayer.MaximumScale = m_pMapControl.MapScale
  If (m_lSubType = 2) Then pLayer.MinimumScale = m_pMapControl.MapScale
  If (m_lSubType = 3) Then
    pLayer.MaximumScale = 0
    pLayer.MinimumScale = 0
  End If
  m_pMapControl.Refresh esriViewDrawPhase.esriViewGeography
End Sub
原文地址:https://www.cnblogs.com/zhangjun1130/p/1409499.html