とりあえず作ってみました。
自分の環境では上手くいきましたが他の環境で正確に動くかはわかりません。
ちなみに自分のOSはWindows 7でテーマはWindows 7 ベーシックです。
#uselib "user32.dll"
#func SetWindowPos "SetWindowPos" int,int,int,int,int,int,int
#func GetSystemMetrics "GetSystemMetrics" sptr
#define WM_NCCALCSIZE $00000083
#define SM_CXSIZEFRAME $00000020
#define SM_CYSIZEFRAME $00000021
#uselib "dwmapi.dll"
#func DwmExtendFrameIntoClientArea "DwmExtendFrameIntoClientArea" int,int
#define ctype GetWinLR ((ginfo(6)-ginfo(4)-ginfo(12))/2) ;左右枠取得
#define ctype GetCaptionSize (ginfo(7)-ginfo(5)-ginfo(13)-GetWinLR()*2) ;タイトルバー高さ取得
//DwmExtendFrameIntoClientAreaの第2パラメータに入れる変数について
//p2=a,b,c,d
//a...左からの領域
//b...右からの領域
//c...上からの領域
//d...下からの領域
GetSystemMetrics(SM_CXSIZEFRAME):Lx=stat ;左右のウィンドウの幅
GetSystemMetrics(SM_CYSIZEFRAME):Ly=stat ;下のウィンドウの幅
TitY=GetCaptionSize()
oncmd gosub *NCCALCSIZE,WM_NCCALCSIZE ;メッセージ監視
drw=lx,lx,TitY,ly ;左右からの領域はLXで下からの領域をLYにする
DwmExtendFrameIntoClientArea hwnd,varptr(drw)
screen 0,640,480
SetWindowPos hwnd,0,10,10,640,480 ;ウィンドウを再描画
boxf;これが無いと表示されない
pos 10,0 ;X座標を0にすると本当に端っこになるのでここらへんがいいです。
objsize 100,18:button "HELLO",*MSG
color 255:pos 200,0:mes "タイトルっぽく。"
onclick gosub*move ;ウィンドウを移動
stop
*MSG
dialog "Hello!",0
stop
*move
if mousey<=TitY:sendmsg hwnd,$a1,2
return
*NCCALCSIZE
if lParam{
dupptr NCCALCSIZE_PARAMS,lParam,16
NCCALCSIZE_PARAMS.0-=Lx //left
NCCALCSIZE_PARAMS.1-=TitY //top
NCCALCSIZE_PARAMS.2+=Lx //right
NCCALCSIZE_PARAMS.3+=Ly //bottom
}
return
参考にしたサイト:
http://www.ku6.jp/report/47.html
http://msdn.microsoft.com/ja-jp/library/cc411206.aspx
http://msdn.microsoft.com/en-us/library/windows/desktop/aa969512(v=vs.85).aspx
http://ht-deko.minim.ne.jp/tech068.html
http://msdn.microsoft.com/ja-jp/library/cc429812.aspx