例によって適当
例によって適当
#define WM_NCLBUTTONDOWN 0x00A1
#define WM_NCLBUTTONUP 0x00A2
#define WM_MOVING 0x0216
#define WM_EXITSIZEMOVE 0x0232
#define WM_SYSKEYDOWN 0x104
#define WM_SYSKEYUP 0x105
#define WM_NCACTIVATE 0x0086
#define WM_INITMENU 0x0116
#define WM_EXITMENULOOP 0x0212
#define WM_NCMOUSELEAVE 0x02A2
#define WM_NCMOUSEMOVE 0x00A0
#define WM_NCRBUTTONDOWN 0x00A4
#define WM_INITMENUPOPUP 0x0117
#define MF_SYSMENU 0x00002000
#define ctype HIWORD(%1) (%1 >> 16 & $FFFF)
oncmd gosub *onNCLBUTTONDOWN, WM_NCLBUTTONDOWN
oncmd gosub *onNCRBUTTONDOWN, WM_NCRBUTTONDOWN
oncmd gosub *onMOVING, WM_MOVING
oncmd gosub *onNCMOUSELEAVE, WM_NCMOUSELEAVE
oncmd gosub *onNCMOUSEMOVE, WM_NCMOUSEMOVE
oncmd gosub *onINITMENU, WM_INITMENU
oncmd gosub *onINITMENUPOPUP, WM_INITMENUPOPUP
oncmd gosub *onEXITMENULOOP, WM_EXITMENULOOP
s = "通常", "ポーズ中(マウスによる)", "ポーズ中(メニューによる)"
repeat
pos 0, 0 : color 255, 255, 255 : boxf : color
mes cnt
gosub *update
wait 12
loop
stop
*update
title s(pause)
return
// メニューが表示されたときに飛んでくる
*onINITMENU
pause = 2
gosub *update
return
// ポップアップメニューが表示されたときに飛んでくる
*onINITMENUPOPUP
// システムメニューかどうか?
if HIWORD(wparam) && MF_SYSMENU{
pause = 2
gosub *update
}
return
// メニューが閉じられた時に飛んでくる
*onEXITMENULOOP
pause = 0
gosub *update
return
// 非クライアント領域(タイトルバー)が左クリックで押されたとき
*onNCLBUTTONDOWN
if pause != 2{
pause = 1
gosub *update
}
return
// 非クライアント領域(タイトルバー)が右クリックで押されたとき
*onNCRBUTTONDOWN
if pause != 2{
pause = 1
gosub *update
}
return
// ウィンドウが移動中の時(WM_MOVEだと移動中は飛んでこない?)
*onMOVING
if pause != 2{
pause = 1
gosub *update
}
return
// 非クライアント領域(タイトルバー)のクリックが離されたとき
*onNCMOUSELEAVE
if pause != 2{
pause = 0
gosub *update
}
return
// 非クライアント領域(タイトルバー)上でマウスが移動したとき
*onNCMOUSEMOVE
if pause != 2{
pause = 0
gosub *update
}
return