【HSP3.x 移植版】『HSPの裏技』シンプルモードステータスバー

『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