例によって適当
例によって適当
#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