chgdispでの解像度変更はchgdisp 0で変更前に戻ります。
ウィンドウの最小化については、WM_SYSCOMMANDメッセージの
wParamにSC_MINIMIZEを設定してウィンドウに送れば可能ですが
詳しい事は『HSP ウィンドウ 最小化』等でネット検索してください。
以下サンプル。
#define WM_SYSCOMMAND $00000112
#define SC_MINIMIZE $0000F020
gsel 0, -1
bgscr 1, 640, 480
WinID = hwnd ; ウィンドウハンドル
gsel 1, 2
button "終了", *exit
button gosub "最小化", *Win_Minimize
chgdisp 1, 640, 480
FS_Flg = 1 ; フルスクリーンフラグ(初期値1)
*main
if FS_Flg = 0 { ; HSPのウィンドウがアクティブになったら全画面化
if ginfo_act = 1 : gosub *Win_Restore
}
wait 500 ; 遅かったら減らしてください
goto *main
*Win_Minimize
dialog "フルスクリーンを解除して\n最小化します"
chgdisp 0 ; 解像度を初期状態に戻す
gsel 1, 0
sendmsg WinID, WM_SYSCOMMAND, SC_MINIMIZE ; ウィンドウを最小化する
FS_Flg = 0
return
*Win_Restore
dialog "フルスクリーンに戻ります"
chgdisp 1, 640, 480
gsel 1, 2
FS_Flg = 1
return
*exit
chgdisp 0
end