トップへ戻る

Autoitプログラミング

GUIウィンドウをモニタ画面の中心に移動

GUIウィンドウをモニタ画面の中心に移動するには、まず画面の解像度(幅、高さ)を取得する必要があります。
幅、高さは、マクロを使えば簡単に取得できます。

 

横方向の解像度:@DesktopWidth
縦方向の解像度:@DesktopHeight
?モニタ画面の中心位置の計算方法

 

横方向の位置:(横方向の解像度 / 2) - (GUIウィンドウの幅 / 2)
縦方向の位置:(縦方向の解像度 / 2) - (GUIウィンドウの高さ / 2)

 

通常はGUIウィンドウ作成時に指定しますが、ここでは「移動」させるサンプルコードを紹介します。

 

ユーザー定義関数を書いてみましたので、参考にしてください。
ウィンドウの幅と高さを取得するための WinGetPos 関数、
移動させるための WinMove 関数を使用しています。

 

関数名: _WinCenter()
パラメータ:$Window ← この変数にウィンドウハンドルを代入します。

 

$Form = GUICreate("メインウィンドウ", 400, 300)
_WinCenter($Form)
GUISetState()

 

Do
Until GUIGetMsg() = -3

 

Func _WinCenter($Window) ; $Window = ウィンドウハンドル
    Local $Center = WinGetPos($Window)
    WinMove($Window, "", (@DesktopWidth / 2) - ($Center[2] / 2), (@DesktopHeight / 2) - ($Center[3] / 2))
EndFunc   ;==>_WinCenter