既定のボタン化(見た目の変更)
エンターキーの監視および、その処理を行うのは次のようなコードになります。
他の一般のソフトと同じような動きにしたい場合にはHSPの標準の機能だけではなく、
WinAPIを使う必要があります。ただし、プラットフォームに強く依存してしまいます。
#include "user32.as"
#module
#define BS_DEFPUSHBUTTON ($00000001)
#define GWL_STYLE (-16)
#define BM_CLICK ($F5)
#deffunc button_def int obj_id
btn_hwnd = objinfo_hwnd(obj_id)
btn_style = GetWindowLong(btn_hwnd, GWL_STYLE) | BS_DEFPUSHBUTTON
SetWindowLong btn_hwnd, GWL_STYLE, btn_style
return
#deffunc button_def_listen int obj_id
btn_hwnd = objinfo_hwnd(obj_id)
stick key
if (key&32) : SendMessage btn_hwnd, BM_CLICK, 0, 0
return
#global
button gosub "btn1", *btnchk
btn1_id=stat
button gosub "btn2", *btnchk
btn2_id=stat
objsel btn1_id
button_def btn2_id // 既定のボタンのデザインにする
*main
await 15
button_def_listen btn2_id // エンターキーを監視し、押された場合にはボタンがクリック時の動作を行う
goto *main
*btnchk
objsel -1 : btn_id=stat
title "btn"+(btn_id+1)
return