WinAPIの「SetParent」関数でできます。
#uselib "user32.dll"
#func SetParent "SetParent" int,int
screen 0,600,400,0
hwnd0 = hwnd
title "第一ウィンドウ"
screen 1,400,200,0
hwnd1 = hwnd
title "第二ウィンドウ"
screen 2,200,100,0
hwnd2 = hwnd
title "第三ウィンドウ"
SetParent hwnd1,hwnd0 ;SetParent 子にしたいウィンドウのハンドル,親にしたいウィンドウのハンドル
SetParent hwnd2,hwnd1
注意視するべきことをいくつか。
子について、
・ginfo_wx1,ginfo_wy1で得られる値は、デスクトップを基準としたものになります。
・width 命令でウィンドウの位置を変更するときの座標は親ウィンドウに対する相対座標になります。デスクトップウィンドウ基準ではありません。
・Windows Vista / 7 における aeroスタイルは子に対しては無効になります。
・一度閉じ込めたウィンドウはscreenで初期化するだけでは開放されません。SetParent関数で親ウィンドウをデスクトップウィンドウに再設定する必要があります。
デスクトップウィンドウのハンドルはWinAPIの「GetDesktopWindow」関数で取得できます。
「SetParent」関数と一緒に知っておくと便利なのは、「SetWindowPos」です。ウィンドウの位置としてマイナス値をしていしたりするときwidthでは不可能なのではこれを使わなければいけません。