ウインドウメッセージを使用した場合、記述は多くなりますが
実際の処理は多少、少なくて済みます。
chkbox を押したときのみ、切り替え処理をすることが出来ます。
SetWindowPos を使っているのは
stock = ginfo_sel
// 処理
gsel stock
の様に、ウインドウを選択しなおすのが面倒だからです。
#include "user32.as"
#define HWND_TOPMOST $FFFFFFFF
#define SWP_NOSIZE $00000001
#define SWP_NOMOVE $00000002
#define WM_COMMAND $00000111
#define BM_GETCHECK $000000F0
#define BST_UNCHECKED $00000000
#define BST_CHECKED $00000001
#define BST_INDETERMINATE $00000002
screen 0 : title "メイン"
hMainWnd = hwnd
chkbox "常に手前",dummy
hChBox = objinfo_hwnd(stat)
oncmd gosub *msg_WM_COMMAND , WM_COMMAND
screen 1 : title "サブ"
hSubWnd = hwnd
stop
*msg_WM_COMMAND
if hChBox = lparam {
sendmsg hChBox , BM_GETCHECK ,0,0
switch stat
case BST_CHECKED
SetWindowPos hMainWnd , HWND_TOPMOST , 0,0 , 0,0 , SWP_NOMOVE | SWP_NOSIZE
swbreak
case BST_UNCHECKED
SetWindowPos hMainWnd , hSubWnd , 0,0 , 0,0 , SWP_NOMOVE | SWP_NOSIZE
swbreak
swend
}
return