前に作ったサンプル。コントロールIDを書き換えてボタンのジャンプ先を変更します。
前に作ったサンプル。コントロールIDを書き換えてボタンのジャンプ先を変更します。
#uselib "user32.dll"
#cfunc GetWindowLong "GetWindowLongA" int, int
#func SetWindowLong "SetWindowLongA" int, int, int
#define GWL_ID -12
button "ボタン1", *button1
hButton1 = objinfo(stat, 2) ; ボタン1のウィンドウハンドルを取得
Button1_id = GetWindowLong(hButton1, GWL_ID) ; コントロールIDを取得
button "ボタン2", *button2
hButton2 = objinfo(stat, 2) ; ボタン2のウィンドウハンドルを取得
Button2_id = GetWindowLong(hButton2, GWL_ID) ; コントロールIDを取得
button "入れ替え", *change
flag = 0
stop
*button1
mes "ボタン1"
stop
*button2
mes "ボタン2"
stop
*change
if (flag == 0) {
SetWindowLong hButton1, GWL_ID, Button2_id ; コントロールIDをボタン2のものに書き換え
SetWindowLong hButton2, GWL_ID, Button1_id ; コントロールIDをボタン1のものに書き換え
} else {
SetWindowLong hButton1, GWL_ID, Button1_id ; コントロールIDをボタン1のものに書き換え (元の状態)
SetWindowLong hButton2, GWL_ID, Button2_id ; コントロールIDをボタン2のものに書き換え (元の状態)
}
flag ^ 1
mes "入れ替え"
stop