CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 2025 开发者帮助

关于控制应用程序窗口 (ActiveX)

2024-5-18 19:18| 发布者: admin| 查看: 134| 评论: 0|原作者: admin|来自: AutoCAD

关于控制应用程序窗口 (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

路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1   苏公网安备32011402011833)

GMT+8, 2025-3-5 18:07

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部