>>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
みなさまありがとうございました