输入点和选择对象操作是在当前视口中进行的。要将某个视口置为当前视口,请使用 ActiveViewport 特性。
可以遍历现有视口以查找特定视口。要执行此任务,首先使用 Name 特性标识所需视口所在的视口配置的名称。此外,如果视口配置已被拆分,则可以通过 LowerLeftCorner 和 UpperRightCorner 特性来标识配置中的每个单独视口。
LowerLeftCorner 和 UpperRightCorner 特性用于表示显示器上视口的图形位置,可以通过如下方式定义这些特性(以四向拆分为例):
- Viewport 1-LowerLeftCorner = (0, .5), UpperRightCorner = (.5, 1)
- Viewport 2-LowerLeftCorner = (.5, .5), UpperRightCorner = (1, 1)
- Viewport 3-LowerLeftCorner = (0, 0), UpperRightCorner = (.5, .5)
- Viewport 4-LowerLeftCorner = (.5, 0), UpperRightCorner = (1, .5)
本例将视口拆分为四个窗口,然后遍历图形中的所有视口并显示视口名称以及每个视口的左下角点和右上角点。
Sub Ch3_IteratingViewportWindows()
' 创建新视口并将其置为活动视口
Dim vportObj As AcadViewport
Set vportObj = ThisDrawing.Viewports.Add("TEST_VIEWPORT")
ThisDrawing.ActiveViewport = vportObj
' 将 vport 拆分为 4 个窗口
vportObj.Split acViewport4
' 遍历视口,
' 亮显每个视口并显示
' 每个视口的右上角点和
' 左下角点。
Dim vport As AcadViewport
Dim LLCorner As Variant
Dim URCorner As Variant
For Each vport In ThisDrawing.Viewports
ThisDrawing.ActiveViewport = vport
LLCorner = vport.LowerLeftCorner
URCorner = vport.UpperRightCorner
MsgBox "Viewport: " & vport.Name & " is now active." & _
vbCrLf & "Lower left corner: " & _
LLCorner(0) & ", " & LLCorner(1) & vbCrLf & _
"Upper right corner: " & _
URCorner(0) & ", " & URCorner(1)
Next vport
End Sub