ボタンのジャンプ先を入れ替えてみる (コントロールID書き換え)

前に作ったサンプル。コントロール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