サイズ変更時にはWM_SIZE(0x0005)が来るはずなので、
その際にレイアウト変更処理をすればどうでしょう。
端をドラッグしてサイズ変更するには、
WM_NCHITTESTメッセージの返り値を弄ればそれっぽく動くような気がします。
その際の定数はMSDNあたりから漁ってください(多分英語しかないけど)
#define WM_SIZE 0x0005
#define WM_NCHITTEST 0x0084
#define HTLEFT 10
#define HTRIGHT 11
#define HTTOP 12
#define HTTOPLEFT 13
#define HTTOPRIGHT 14
#define HTBOTTOM 15
#define HTBOTTOMLEFT 16
#define HTBOTTOMRIGHT 17
#define HTNOWHERE 0
#define HTCLIENT 1
#define HTCAPTION 2
bgscr 0,480,320
cls 4
pos 240,160
button "Quit",*quit
oncmd gosub *onNCHITTEST,WM_NCHITTEST
oncmd gosub *onSIZE,WM_SIZE
gosub *onSIZE
stop
*onNCHITTEST
// lparamにはマウス座標(スクリーン座標)が入る。
mouseposy = ( lparam >> 16)
mouseposx = ( lparam << 16 ) >> 16
if ( mouseposx < ginfo_wx1 ): return HTNOWHERE
if ( mouseposx >= ginfo_wx2 ): return HTNOWHERE
if ( mouseposy < ginfo_wy1 ): return HTNOWHERE
if ( mouseposy >= ginfo_wy2 ): return HTNOWHERE
xblock = (mouseposx-ginfo_wx1)*5/(ginfo_wx2-ginfo_wx1)
yblock = (mouseposy-ginfo_wy1)*5/(ginfo_wy2-ginfo_wy1)
if ( xblock == 0 && yblock == 0 ) : return HTTOPLEFT
if ( xblock == 0 && yblock == 4 ) : return HTBOTTOMLEFT
if ( xblock == 4 && yblock == 0 ) : return HTTOPRIGHT
if ( xblock == 4 && yblock == 4 ) : return HTBOTTOMRIGHT
if ( xblock == 0 ) : return HTLEFT
if ( xblock == 4 ) : return HTRIGHT
if ( yblock == 0 ) : return HTTOP
if ( yblock == 4 ) : return HTBOTTOM
return HTCLIENT
*onSIZE
redraw 0
color 48,48,192
boxf
color 255,255,255
xp1 = (ginfo_wx2-ginfo_wx1)/5
xp2 = (ginfo_wx2-ginfo_wx1)*4/5-1
yp1 = (ginfo_wy2-ginfo_wy1)/5
yp2 = (ginfo_wy2-ginfo_wy1)*4/5-1
boxf xp1,yp1,xp2,yp2
pos xp1,yp1
color
mes strf("size(%d,%d)",(ginfo_wx2-ginfo_wx1),(ginfo_wy2-ginfo_wy1))
redraw 1
return
*quit
end
補足:コードに誤りがあったので削除し、修正。