もう解決済みだけど、書いてみたコード。
#include "user32.as"
#const PIC_BTN 9
// ボタンハンドル
dim hBtn, 3
// バッファーにボタン画像を作成
buffer PIC_BTN
color 0, 0, 0:boxf 0, 0, 135, 29
color 202, 202, 202:boxf 0, 30, 90, 59
color 228, 228, 228:boxf 0, 60, 90, 89
color 242, 112, 122:boxf 90, 30, 135, 59
color 232, 16, 36:boxf 90, 60, 135, 89
color 255, 255, 255
font "MS UI Gothic", 18
pos 14, 6:mes "−"
pos 14, 36:mes "−"
pos 14, 66:mes "−"
pos 104, 6:mes "×"
pos 104, 36:mes "×"
pos 104, 66:mes "×"
font "MS UI Gothic", 13
pos 62, 9:mes "□"
pos 62, 39:mes "□"
pos 62, 69:mes "□"
// 一旦、最大サイズでメインウィンドウ作成
bgscr 0, ginfo(20), ginfo(21), 0
// ウィンドウサイズを可変にすると細いタイトルバーが付き
// ウィンドウサイズもおかしくなる?
//GetWindowLong hwnd, -16
//SetWindowLong hwnd, -16, stat | 0x40000
oncmd gosub *cmd_resize, 0x5
onclick gosub *cmd_move
// ボタンを作成
objsize 45, 30
objimage PIC_BTN, 0, 0, 0, 30, 0, 60
button gosub "", *cmd_min
hBtn(0) = objinfo(stat, 2)
objimage PIC_BTN, 45, 0, 45, 30, 45, 60
button gosub "", *cmd_max
hBtn(1) = objinfo(stat, 2)
objimage PIC_BTN, 90, 0, 90, 30, 90, 60
button gosub "", *cmd_end
hBtn(2) = objinfo(stat, 2)
width 640, 480
stop
*cmd_resize
w = ginfo(10)
h = ginfo(11)
// ウィンドウサイズの最小サイズをリミッター
if (w < 200):width 200, h:else: if (h < 200):width w, 200
// ボタン再配置
repeat 3
MoveWindow hBtn(cnt), w - (45 * (3 - cnt)), 0, 45, 30, 1
loop
redraw 0
color 0, 0, 127
boxf
color 255, 255, 255
pos 0, 0:mes "Window size:"+w+" x "+h
redraw 1
return
*cmd_move
if wparam=1 : sendmsg hwnd, 0x00A1, 2, 0
return
*cmd_min
sendmsg hwnd, 0x112, 0xF020
stop
*cmd_max
if (bMax == 1) {
bMax = 0
sendmsg hwnd, 0x112, 0xF120
}
else {
bMax = 1
sendmsg hwnd, 0x112, 0xF030
}
stop
*cmd_end
end
ただ問題点として、ボタンが半透明でないのとウィンドウサイズを可変にすると
不具合が出るのと、元のサイズに戻すボタンが作るのめんどくさくて違う点があります。