关于控制应用程序窗口 (ActiveX)
控制“应用程序”窗口的功能使开发人员能够灵活地创建有效和智能的应用程序。
有时,您的应用程序应该最小化 AutoCAD 窗口,也许当您的代码在另一个应用程序(如 Excel)中执行工作时。此外,在执行诸如提示用户输入等任务之前,您通常需要验证 AutoCAD 窗口的状态。
使用在对象上找到的方法和属性,可以更改“应用程序”窗口的位置、大小和可见性。还可以使用该属性来最小化、最大化和检查“应用程序”窗口的当前状态。ApplicationWindowState
“应用程序”窗口的位置和大小
本示例使用 、 、 和 特性将 AutoCAD 应用程序窗口定位在屏幕的左上角,并将其大小调整为 400 像素宽 x 400 像素高。WindowTopWindowLeftWidthHeight
- AutoLISP
-
(vl-load-com)
(defun c:Ch3_PositionApplicationWindow ()
(setq acadObj (vlax-get-acad-object))
(vla-put-WindowTop acadObj 0)
(vla-put-WindowLeft acadObj 0)
(vla-put-width acadObj 400)
(vla-put-height acadObj 400)
)
- VBA(仅限 AutoCAD)
-
Sub Ch3_PositionApplicationWindow()
ThisDrawing.Application.WindowTop = 0
ThisDrawing.Application.WindowLeft = 0
ThisDrawing.Application.width = 400
ThisDrawing.Application.height = 400
End Sub
最大化“应用程序”窗口
- AutoLISP
-
(vl-load-com)
(defun c:Ch3_MaximizeApplicationWindow ()
(setq acadObj (vlax-get-acad-object))
(vla-put-WindowState acadObj acMax)
)
- VBA(仅限 AutoCAD)
-
Sub Ch3_MaximizeApplicationWindow()
ThisDrawing.Application.WindowState = acMax
End Sub
最小化“应用程序”窗口
- AutoLISP
-
(vl-load-com)
(defun c:Ch3_MinimizeApplicationWindow ()
(setq acadObj (vlax-get-acad-object))
(vla-put-WindowState acadObj acMin)
)
- VBA(仅限 AutoCAD)
-
Sub Ch3_MinimizeApplicationWindow()
ThisDrawing.Application.WindowState = acMin
End Sub
查找“应用程序”窗口的当前状态
此示例查询“应用程序”窗口的状态,并在消息框中向用户显示该状态。
- AutoLISP
-
(vl-load-com)
(defun c:Ch3_CurrentWindowState()
(setq acadObj (vlax-get-acad-object)
CurrWindowState (vla-get-WindowState acadObj)
msg "")
(cond
((= CurrWindowState 1)(setq msg "normal"))
((= CurrWindowState 2)(setq msg "minimized"))
((= CurrWindowState 3)(setq msg "maximized"))
)
(alert (strcat "The application window is " msg))
)
- VBA(仅限 AutoCAD)
-
Sub Ch3_CurrentWindowState()
Dim CurrWindowState As Integer
Dim msg As String
CurrWindowState = ThisDrawing.Application.WindowState
msg = Choose(CurrWindowState, "normal", "minimized", "maximized")
MsgBox "The application window is " + msg
End Sub
使“应用程序”窗口不可见
以下代码使用该特性使 AutoCAD 应用程序对最终用户不可见。Visible
- AutoLISP
-
(defun c:Ch3_HideWindowState ()
(setq acadObj (vlax-get-acad-object))
(vla-put-Visible acadObj :vlax-false)
)
- VBA(仅限 AutoCAD)
-
Sub Ch3_HideWindowState()
ThisDrawing.Application.Visible = False
End Sub
|