Dripです。
掛布団さん、こんにちは。
Windowsで独自描画のメニューやボタン等を作成する場合は、
画面をリアルタイムで書き換えながら行うことが基本です。
一見画面が止まっているように見えるものでも、実は一秒間の間に何回も画面を書き換えて
表示しています。下に独自描画メニューのサンプルを示します。
menu(0)="ぼうけんをはじめる" //メニューの内容
menu(1)="ぼうけんのしょをつくる"
menu(2)="ぼうけんのしょをうつす"
menu(3)="ぼうけんのしょをけす"
menu(4)="メモリーカードユーティリティ"
cur=0 //最初のカーソルの位置
mp=20,10,270,170 //メニューの位置(x,y)とサイズ(x,y)
font "MS ゴシック",14 //使用するフォント
repeat
stick ky
if ky=2 & cur>0:cur-- //カーソルを上に移動
if ky=8 & cur<length(menu)-1:cur++ //カーソルを下に移動
if ky=16:dialog ""+menu(cur),0,"決定" //スペースキーで決定
redraw 0 //画面の更新をしない
color 220,240,255:boxf //背景をクリアする
color:boxf mp(0),mp(1),mp(0)+mp(2),mp(1)+mp(3) //メニューの枠を描画する
color 255,255,255:boxf mp(0)+2,mp(1)+2,mp(0)+mp(2)-2,mp(1)+mp(3)-2
color:boxf mp(0)+4,mp(1)+4,mp(0)+mp(2)-4,mp(1)+mp(3)-4
color 255,255,255:pos mp(0)+40,mp(1)+20
repeat length(menu) //メニューの内容を描画する
if cur=cnt:curp=ginfo_cy //カーソルの位置を特定
mes menu(cnt)+"\n"
loop
if cnt\10<7:pos mp(0)+18,curp:mes "●" //カーソルをカーソルの位置に描画する
redraw 1 //画面を一気に書き換える
await 30 //100分の3秒待つ
loop
やりかたは無限にあるので、掛布団さんが開発されているソフトに最も合う方法を見つけて、
自分なりに組んでみてください。
モジュールについて少し触れてみますと、モジュールは上で示したようなプログラムを
よりスッキリ書く方法の一つと言えます。すぐに勉強しなければならないことでもないので、
プログラムを書いていて「同じ処理の繰り返しが山ほど出てきた、どうにかならないか?」と
思った時に調べてみてください。HSP付属マニュアルにもモジュールについて詳しく書かれています。