ボタンとメッセージボックスのどちらが作りたいのか
分からなかったので両方作りました。
X=1
#module
#define ctype max( %1, %2 ) ( %1 )*( %1 > %2 ) + ( %2 )*( %1 <= %2 )
#define ctype min( %1, %2 ) ( %1 )*( %1 < %2 ) + ( %2 )*( %1 >= %2 )
#const DEFAULT_R 20
#deffunc rboxf int _x1, int _y1, int _x2, int _y2, int _r
x1 = min(_x1, _x2) : x2 = max(_x1, _x2)
y1 = min(_y1, _y2) : y2 = max(_y1, _y2)
box_width = x2 - x1 : box_height = y2 - y1
if ( _r <= 0 ) {
r = DEFAULT_R
} else {
r = _r
}
r = min( r, min( box_width / 2, box_height / 2 ) )
boxf x1, y1+r, x2, y2-r
boxf x1+r, y1, x2-r, y2
repeat 4
x = x1 + ( cnt \ 2 ) * ( box_width - r * 2 + 1)
y = y1 + ( cnt / 2 ) * ( box_height - r * 2 + 1 )
circle x, y, x + r * 2, y + r * 2
loop
return
#global
onclick gosub *Click
A="" :randomize
stop
*Click
/* 中に文字を入れるのなら
if wparam&1 {
MX=mousex :MY=mousey
pos MX+10,MY+10:mesbox A,80,80
color rnd(255),rnd(255),rnd(255)
rboxf MX,MY,MX+100,MY+100
}
*/
/* ボタンでいいのなら
if wparam&1 {
buffer X
color rnd(255),rnd(255),rnd(255)
rboxf 0,0,100,100 :gsel 0
MX=mousex :MY=mousey
pos MX,MY :objsize 100,100:objimage X,0,0,0,0,0,0:button gosub"",*label
X++
}
*/
return
*label
return