width文で指定している灰色ウィンドウの位置が、白ウィンドウの位置が
基準になっておらず、(なぜか)白ウィンドウの横幅や縦幅が基準になっているからです。
そのため、白ウィンドウの位置が変わると、灰色ウィンドウの位置が
白ウィンドウの位置と合わなくなります。
以下のように、まず白ウィンドウの(0,0)の位置がスクリーン上だと
どの位置になるのかをWinAPIを使って調べ、それを基準に配置するようにしてみました。
また、width命令でウィンドウの幅を変更しても実際に変更されるまでには
若干のタイムラグがあるようなので、ウィンドウの幅は変更せずに、
これまたWinAPIを使って、白ウィンドウと灰色ウィンドウを親子にするように
してみました。
#include "user32.as"
screen 0,1280,680,0,0,0
hwnd0=hwnd //白ウィンドウのハンドル
//白いウィンドウの0,0の位置のスクリーン上の座標を調べる
dim point,2
point=0,0
ClientToScreen hwnd0,varptr(point) //白ウィンドウ上の座標がスクリーン上の座標に変換される
Big_Window_X=point(0)+390
Big_Window_Y=point(1)+680
bgscr 101,390,360,0,Big_Window_X,Big_Window_Y
hwnd1=hwnd //灰色ウィンドウのハンドル
SetParent hwnd1,hwnd0 //灰色ウィンドウを白ウィンドウの子ウィンドウにする
color 100,100,100:boxf
Big_Window=0
i=0
repeat 45
setease 0,360,ease_quartic_out
Big_Window = getease(i,50)
Big_Window_Y3=Big_Window_Y-Big_Window
flag=0
width ,,Big_Window_X,Big_Window_Y3
i=i+1
wait 1
loop