>>NO.61486
>NO.61477
>なのでボタンで飛んだ先でoncmd 0にしてしまえばエラーは出ないんですけどね
と書いてあるとおり解決策は最初からわかっていました
この質問でもエラーの原因を聞いているだけで解決法を聞いてるつもりはありませんでした
>NO.61494
>ほとんどの人が言っていると思いますが、oncmd gosub は、screen 0 で明示的に初期化した後に行ってください。
元のスクリプトではちゃんとしています 最初に上げたのは最小再現スクリプトです
下手に削りすぎないほうが良かったですね
>NO.61488
解説ありがとうございます
内部の処理がわかりました
最後に処理の流れが分かる程度に書き直したスクリプトを貼っておきます
#include "user32.as"
#define WM_SIZE	0x00005	//ウィンドウサイズ変更
#define WS_MAXIMIZEBOX	0x10000	//最大化ボタン
#define WS_THICKFRAME	0x40000	//サイズ変更可能
	disw = ginfo(20)
	dish = ginfo(21)
	sx = 960
	sy = 540
	screen 1,200,50
	buffer 2,disw,dish
	cls 4
	screen 0,disw,dish
	title "サイズ変更可能"
	
	width sx,sy
	GetWindowLong hwnd, -16
	SetWindowLong hwnd, -16, stat | WS_THICKFRAME | WS_MAXIMIZEBOX
	GetClassLong hwnd, -26
	SetClassLong hwnd, -26, stat | $8
	
	title "サイズ変更可能"
	
	oncmd gosub *windowsize, 0x0005
	oncmd gosub *click, 0x0201
	
	gosub *draw
	
	stop
	
*click
	
	oncmd 0;←
	
	bgscr 0
	
	oncmd 1;←
	
	gosub *draw
	
return
*draw
	
	gsel 1
	;〜〜〜
	gsel 2
	;〜〜〜 
	gsel 0 ;←ここ
	color 255,255,255
	boxf
	color
	pos 0,0
	mes strf("%04d %04d",sx,sy)
	
return
	
*windowsize
	
	oncmd 0
	sx = ginfo(12)
	sy = ginfo(13)
	gosub *draw
	
	oncmd 1
return
みなさまありがとうございました