;
; ウィンドウ中央表示(タスクバー考慮)
;
; タスクバーを考慮してウィンドウを中心寄せで配置します。
; ウィンドウが大きすぎてディスプレイサイズを超える場合は、左上が必ずディスプレイ内に入るよう調整。
;
;-----------------------------
; タスクバー位置サイズを取得
;-----------------------------
#uselib "user32"
#func FindWindow "FindWindowA" str, int
#func GetWindowRect "GetWindowRect" int, int
dim RECT, 4
FindWindow "shell_traywnd"
GetWindowRect stat, varptr (RECT)
mes rect(0) ;L
mes rect(1) ;T
mes rect(2) ;R
mes rect(3) ;B
tw = rect(2) - rect(0) ;幅
th = rect(3) - rect(1) ;高さ
/*
タスクバーの位置
L!0 右
T!0 下
R!ginfo_dispx 左
B!ginfo_dispy 上
*/
;-----------------------------
; ウィンドウ作成
;-----------------------------
w = 1800+500 ;横幅
h = 600 ;高さ
screen 0, w, h
;-----------------------------
; ウィンドウ位置を調整
;-----------------------------
w = ginfo_sizex
h = ginfo_sizey
l = 0
t = 0
; 右
if rect(0)!0 {
l = (ginfo_dispx - tw - w) / 2
t = (ginfo_dispy - h) / 2
}
; 下
if rect(1)!0 {
l = (ginfo_dispx - w) / 2
t = (ginfo_dispy - th - h) / 2
}
; 左
if rect(2)!ginfo_dispx {
l = (ginfo_dispx - tw - w) / 2 + tw
t = (ginfo_dispy - h) / 2 + th
}
; 上
if rect(3)!ginfo_dispy {
l = (ginfo_dispx - w) / 2
t = (ginfo_dispy - th - h) / 2 + th
}
if l<0 : l = 0
if t<0 : t = 0
width ,,l,t