概要 - アプリケーション ウィンドウをコントロールする(ActiveX)

アプリケーション ウィンドウをコントロールできるので、開発者は効果的でインテリジェントなアプリケーションを柔軟に作成することができます。

アプリケーションで、コードが他のアプリケーション(たとえば、Excel)の作業を実行している間、AutoCAD ウィンドウを最小化するほうがよい場合があります。また、ユーザからの入力を要求するプロンプトなどのタスクを実行する前に AutoCAD ウィンドウの状態を確認することが必要となる場合があります。

Application オブジェクトにあるメソッドとプロパティを使用すると、アプリケーション ウィンドウの位置、サイズ、ウィンドウの表示/非表示を変更することができます。また、WindowState プロパティを使用すると、アプリケーション ウィンドウを最小化または最大化したり、アプリケーション ウィンドウの現在の状態を確認することができます。

アプリケーション ウィンドウの位置とサイズを変更する

次の例は、WindowTopWindowLeftWidthHeight プロパティを使用して、AutoCAD アプリケーション ウィンドウを画面の左上コーナーに配置し、サイズを幅 400 x 高さ 400 ピクセルに変更します。

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

アプリケーション ウィンドウを非表示にする

以下の例は、Visible プロパティを使用して、AutoCAD アプリケーションをエンド ユーザに対し非表示にします。

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