前にワタシがほとんど同じ質問(まったく同じ?)
をしました.
それがこれ→
http://hsp.tv/play/pforum.php?mode=all&num=58840
スクリプト↓
#uselib "user32.dll"
#func global TrackMouseEvent "TrackMouseEvent" sptr
#func global WindowFromPoint "WindowFromPoint" sptr,sptr
#func global SetWindowPos "SetWindowPos" sptr,sptr,sptr,sptr,sptr,sptr,sptr
repeat 10 :pos rnd(640-64),rnd(480-24)//10個ボタンをランダムな位置に作る
button gosub str(cnt),*label_0//クリックしたらlabel_0に移動
loop ;ボタン上右クリックで移動開始
oncmd gosub *label_1,$200 ;WM_MOUSEMOVE
oncmd gosub *label_2,$2A3 ;WM_MOUSELEAVE
stop
*label_0 :title str(objinfo(stat,2))
//ボタンを押したときの動作
return
*label_1 :nn = 16,2,hwnd,1000 :TrackMouseEvent varptr(nn)
//マウスを動かしたときの動作
:getkey kk,2
:if (kk) and (hh != 0) {SetWindowPos hh,0,mousex,mousey,0,0,1} else {hh = 0}
:title str(hh)
return
*label_2 :WindowFromPoint ginfo_mx,ginfo_my
//マウスをボタンにかざした時の動作
:if (stat != hwnd) {hh = stat} else {hh = 0}
return
さらに画像を付けたい場合は,
#uselib "user32.dll"
#func global TrackMouseEvent "TrackMouseEvent" sptr
#func global WindowFromPoint "WindowFromPoint" sptr,sptr
#func global SetWindowPos "SetWindowPos" sptr,sptr,sptr,sptr,sptr,sptr,sptr
celload "e.png" ,2
celdiv 2,104,70
buffer 1,104*3,70 //ボタン用バッファ
repeat 3 //ボタン用バッファに配置場所の画像とボタン画像をコピー
pos 104*cnt,0
gmode 0
gcopy 0,0,0,104,70 //ボタンの配置場所の画像をボタン画像をコピーする場所にコピー
pos 104*cnt,
gmode 4,0,0,200
celput 2, cnt //ボタン画像をボタン用バッファにコピー
loop
gsel 0, 1
pos 0, 0
objsize 104,70
objimage 1, 0, 0, 104, 0, 104*2,0
button "" ,*Label_0
oncmd gosub *label_1,$200 ;WM_MOUSEMOVE
oncmd gosub *label_2,$2A3 ;WM_MOUSELEAVE
stop
*label_0
//ボタンを押したときの動作
mes "押しました
*label_1 :nn = 16,2,hwnd,1000 :TrackMouseEvent varptr(nn)
//マウスを動かしたときの動作
:getkey kk,2
:if (kk) and (hh != 0) {SetWindowPos hh,0,mousex,mousey,0,0,1} else {hh = 0}
:title str(hh)
return
*label_2 :WindowFromPoint ginfo_mx,ginfo_my
//マウスをボタンにかざした時の動作
:if (stat != hwnd) {hh = stat} else {hh = 0}
return
こうします
↓画像ファイル
http://ux.getuploader.com/07017/download/10/e.png