width命令でウィンドウサイズをいじる


 HSP3掲示板「mesboxが思うように更新されない」より。


◇ HSPオブジェクト
 オブジェクトを設置した後に、中身(内容)だけ書き換えたい時はHSP標準のobjprm命令を使います。cls命令でウィンドウ内を全部消去したりscreen命令を呼んでウインドウを初期化して、その後で同じ目的のオブジェクトを再び設置するというのはものすごーく無駄です。


 オブジェクトを消去したい場合は、clrobj命令があります。オブジェクトの位置やサイズを設置後に変えたい時は、「common\obj.as」にHSPモジュール命令(resizeobj命令)が用意されてます。Win32 API関数のShowWindow関数を使えば、オブジェクトを一時的に非表示させることもできます。イメージ 1


◇ HSPウィンドウ
 width命令はHSPの自ウィンドウの表示サイズを変更できる命令です。注意点として、width命令はscreen命令で指定した初期ウィンドウサイズより大きくはできないので、screen命令であらかじめ大きめのサイズ指定を行っておく必要があります。


 ボタン押しでHSPウィンドウのサイズ変更(開け閉め風)する処理を書いてみるみる。



 screen 0, 400, 200
 width 200, 200


 pos 0, 0
 button "切り替え", *change


 sdim buf, 8096


 pos 300, 0
 mesbox buf, 100, 50


 stop



*change
 if check {
  width 200, 200
 } else {
  width 400, 200
 }


 check ^ 1


 stop




  • 「 if check { 」 という処理は 「 if check != 0 { 」 に等しいです。

  • 「 check ^ 1 」 という処理は 0 or 1 のスイッチ処理です。
    check が 0 のときは 1 が代入され、check が 1 のときは 0 が代入されます。

-----