CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

ObjectARX 开发指南

控制应用程序窗口 (.NET)

2023-1-1 16:22| 发布者: admin| 查看: 2212| 评论: 0|来自: AutoCAD

控制“应用程序”窗口的功能使开发人员能够灵活地创建有效和智能的应用程序。有时,您的应用程序适合最小化 AutoCAD 窗口,也许当您的代码在另一个应用程序(如 Microsoft® Excel®)中执行工作时。此外,在执行诸如提示用户输入等任务之前,您通常需要验证 AutoCAD 窗口的状态。

使用在 Application 对象上找到的方法和属性,可以更改 Application 窗口的位置、大小和可见性。还可以使用该属性来最小化、最大化和检查“应用程序”窗口的当前状态。WindowState

“应用程序”窗口的位置和大小

本示例使用 and 属性将 AutoCAD 应用程序窗口定位在屏幕的左上角,并将其调整为 400 像素宽 x 400 像素高。LocationSize

注意:下面的示例要求对项目引用 PresentationCore (PresentationCore.dll) 库。使用“添加引用”对话框,然后从“.NET”选项卡中选择“PresentationCore”。

VB.NET

Imports System.Drawing
Imports Autodesk.AutoCAD.Runtime
Imports Autodesk.AutoCAD.ApplicationServices
 
<CommandMethod("PositionApplicationWindow")> _
Public Sub PositionApplicationWindow()
    '' Set the position of the Application window
    Dim ptApp As System.Windows.Point = New System.Windows.Point(0, 0)
    Autodesk.AutoCAD.ApplicationServices.Core.Application.MainWindow.DeviceIndependentLocation = ptApp

    '' Set the size of the Application window
    Dim szApp As System.Windows.Size = New System.Windows.Size(400, 400)
    Autodesk.AutoCAD.ApplicationServices.Core.Application.MainWindow.DeviceIndependentSize = szApp
End Sub

C#

using System.Drawing;
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.ApplicationServices;
 
[CommandMethod("PositionApplicationWindow")]
public static void PositionApplicationWindow()
{
    // Set the position of the Application window
    System.Windows.Point ptApp = new System.Windows.Point(0, 0);
    Autodesk.AutoCAD.ApplicationServices.Application.MainWindow.DeviceIndependentLocation = ptApp;

    // Set the size of the Application window
    System.Windows.Size szApp = new System.Windows.Size(400, 400);
    Autodesk.AutoCAD.ApplicationServices.Application.MainWindow.DeviceIndependentSize = szApp;
}

VBA/ActiveX 代码参考

Sub PositionApplicationWindow()
    '' Set the position of the Application window
    ThisDrawing.Application.WindowTop = 0
    ThisDrawing.Application.WindowLeft = 0
 
    '' Set the size of the Application window
    ThisDrawing.Application.width = 400
    ThisDrawing.Application.height = 400
End Sub

最小化和最大化“应用程序”窗口

注意:下面的示例要求对项目引用 PresentationCore (PresentationCore.dll) 库。使用“添加引用”对话框,然后从“.NET”选项卡中选择“PresentationCore”。

VB.NET

Imports System.Drawing
Imports Autodesk.AutoCAD.Runtime
Imports Autodesk.AutoCAD.ApplicationServices
Imports Autodesk.AutoCAD.Windows
 
<CommandMethod("MinMaxApplicationWindow")> _
Public Sub MinMaxApplicationWindow()
    ''Minimize the Application window
    Application.MainWindow.WindowState = Window.State.Minimized
    MsgBox("Minimized", MsgBoxStyle.SystemModal, "MinMax")

    ''Maximize the Application window
    Application.MainWindow.WindowState = Window.State.Maximized
    MsgBox("Maximized", MsgBoxStyle.SystemModal, "MinMax")
End Sub

C#

using System.Drawing;
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.Windows;
 
[CommandMethod("MinMaxApplicationWindow")]
public static void MinMaxApplicationWindow()
{
    //Minimize the Application window
    Application.MainWindow.WindowState = Window.State.Minimized;


    System.Windows.Forms.MessageBox.Show("Minimized", "MinMax",
                System.Windows.Forms.MessageBoxButtons.OK,
                System.Windows.Forms.MessageBoxIcon.None,
                System.Windows.Forms.MessageBoxDefaultButton.Button1,
                System.Windows.Forms.MessageBoxOptions.ServiceNotification);

    //Maximize the Application window
    Application.MainWindow.WindowState = Window.State.Maximized;
    System.Windows.Forms.MessageBox.Show("Maximized", "MinMax");
}

VBA/ActiveX 代码参考

Sub MinMaxApplicationWindow()
    '' Minimize the Application window
    ThisDrawing.Application.WindowState = acMin
    MsgBox "Minimized"
 
    '' Maximize the Application window
    ThisDrawing.Application.WindowState = acMax
    MsgBox "Maximized"
End Sub

查找“应用程序”窗口的当前状态

此示例查询“应用程序”窗口的状态,并在消息框中向用户显示该状态。

VB.NET

Imports Autodesk.AutoCAD.Runtime
Imports Autodesk.AutoCAD.ApplicationServices
Imports Autodesk.AutoCAD.Windows
 
<CommandMethod("CurrentWindowState")> _
Public Sub CurrentWindowState()
    System.Windows.Forms.MessageBox.Show("The application window is " + _
                                         Application.MainWindow.WindowState.ToString(), _
                                         "Window State")
End Sub

C#

using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.Windows;
 
[CommandMethod("CurrentWindowState")]
public static void CurrentWindowState()
{
    System.Windows.Forms.MessageBox.Show("The application window is " +
                                            Application.MainWindow.WindowState.ToString(), 
                                            "Window State");
}

VBA/ActiveX 代码参考

Sub 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

VB.NET

Imports Autodesk.AutoCAD.Runtime
Imports Autodesk.AutoCAD.ApplicationServices
Imports Autodesk.AutoCAD.Windows
 
<CommandMethod("HideWindowState")> _
Public Sub HideWindowState()
    ''Hide the Application window
    Application.MainWindow.Visible = False
    MsgBox("Invisible", MsgBoxStyle.SystemModal, "Show/Hide")

    ''Show the Application window
    Application.MainWindow.Visible = True
    MsgBox("Visible", MsgBoxStyle.SystemModal, "Show/Hide")
End Sub

C#

using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.Windows;
 
[CommandMethod("HideWindowState")]
public static void HideWindowState()
{
    //Hide the Application window
    Application.MainWindow.Visible = false;
    System.Windows.Forms.MessageBox.Show("Invisible", "Show/Hide");

    //Show the Application window
    Application.MainWindow.Visible = true;
    System.Windows.Forms.MessageBox.Show("Visible", "Show/Hide");
}

VBA/ActiveX 代码参考

Sub HideWindowState()
    '' Hide the Application window
    ThisDrawing.Application.Visible = False
    MsgBox "Invisible"
 
    '' Show the Application window
    ThisDrawing.Application.Visible = True
    MsgBox "Visible"
End Sub

路过

雷人

握手

鲜花

鸡蛋

最新评论

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

GMT+8, 2025-1-7 20:15

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部