; ; ウィンドウ中央表示(タスクバー考慮) ; ; タスクバーを考慮してウィンドウを中心寄せで配置します。 ; ウィンドウが大きすぎてディスプレイサイズを超える場合は、左上が必ずディスプレイ内に入るよう調整。 ; ;----------------------------- ; タスクバー位置サイズを取得 ;----------------------------- #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