これがスマートな方法とはあまり思われませんが。
SetParentというAPIを使うと、ウィンドウの中にウィンドウが現れるようになります。
だから、複数ウィンドウを親ウィンドウの中に作っちゃえばどうでしょう。
#uselib "USER32.DLL"
#func SetParent "SetParent" int, int
randomize
dim hwindow, 4
screen 0, 640, 480, 2+4, -1, -1 : hWindow(0)=hwnd
bgscr 1, 640, 240, 2+4, 0, 0 : hWindow(1)=hwnd
bgscr 2, 320, 240, 2+4, 0, 240 : hWindow(2)=hwnd
bgscr 3, 320, 240, 2+4, 320, 240 : hWindow(3)=hwnd
repeat 3, 1
SetParent hWindow(cnt), hWindow(0)
loop
repeat 4
gsel cnt, 1
color rnd($FF+1), rnd($FF+1), rnd($FF+1) : boxf
color : mes "私のウィンドウIDは"+ginfo_sel
loop
初めにオーナーウィンドウ(ウィンドウIDは0)を作ってから、
中に入る子ウィンドウたち(ウィンドウID1,2,3)を作り、
それらのウィンドウハンドルをSetParentAPIに渡してます。
あとは、非表示として初期化したウィンドウたちを表示させ、
適当に自分のウィンドウIDを名乗らせてます。
MSDN SetParent :
http://msdn.microsoft.com/ja-jp/library/cc411061.aspx