『HSPの裏技』シンプルモードステータスバー(HSP2.x 版)をHSP3.x バージョンへ書き換えたものです。
http://chokuto.ifdef.jp/urawaza/statusbar2.html
『HSPの裏技』シンプルモードステータスバー(HSP2.x 版)をHSP3.x バージョンへ書き換えたものです。
http://chokuto.ifdef.jp/urawaza/statusbar2.html
; 【HSP3.x 移植版】
; 『HSPの裏技』シンプルモードステータスバー
; http://chokuto.ifdef.jp/urawaza/statusbar2.html
#uselib "comctl32.dll"
#func InitCommonControlsEx "InitCommonControlsEx" int
; 各種定数定義
#define ICC_BAR_CLASSES 4
#define WS_CHILD 0x40000000
#define WS_VISIBLE 0x10000000
#define CCS_BOTTOM 0x00000003
#define SB_SETTEXT 0x0401
#define SB_SETPARTS 0x0404
#define SB_SIMPLE 0x0409
#define SB_SIMPLEID 255
; コモンコントロールライブラリの初期化
initinfo = 8, ICC_BAR_CLASSES
InitCommonControlsEx varptr(initinfo)
; ステータスバーの作成
styleFlags = WS_CHILD | WS_VISIBLE | CCS_BOTTOM
winobj "msctls_statusbar32", "", 0, styleFlags, 0, 0
statusbarID = stat
; ステータスバーを3つのパーツに分ける
partspos = 80, 220, -1
sendmsg objinfo_hwnd(statusbarID), SB_SETPARTS, 3, varptr(partspos)
; パーツの表示テキスト設定
msgtext(0) = "パーツ1" ; 左揃えで表示
msgtext(1) = "\tパーツ2" ; 中央揃えで表示
msgtext(2) = "\t\tパーツ3" ; 右揃えで表示
repeat 3
; SB_SETTEXT メッセージ送信
sendmsg objinfo_hwnd(statusbarID), SB_SETTEXT, cnt, msgtext(cnt)
loop
pos 0, 0
objsize ginfo_winx
button gosub "simple mode 表示", *ChangeSimpleMode
button gosub "nonsimple mode 表示", *ChangeNonSimpleMode
stop
*ChangeSimpleMode
; シンプルモードに切り替え
; SB_SIMPLE メッセージ送信
sendmsg objinfo_hwnd(statusbarID), SB_SIMPLE, 1, 0
; SB_SETTEXT メッセージ送信
msgtext = "シンプルモードテキスト"
sendmsg objinfo_hwnd(statusbarID), SB_SETTEXT, SB_SIMPLEID, varptr(msgtext)
return
*ChangeNonSimpleMode
; 非シンプルモードに切り替え
; SB_SIMPLE メッセージ送信
sendmsg objinfo_hwnd(statusbarID), SB_SIMPLE, 0, 0
return