命令・関数名 | パラメータ | パラメータの説明 |
ProgBar_Create
プログレスバーを設置する
|
int | n [pixel] (コントロールの横幅) |
int | n [pixel] (コントロールの縦幅) | |
int |
0 (指定なし)
+1 (縦にバーが伸びる)
+2 (なめらかに減る)
普通、なめらかに増え、減るときは一瞬 |
|
int | 最小値、バーがまったくないときの値 | |
int | 最大値、いっぱいになったときの値 | |
int | 1Stepの増加量 | |
int | 初期値 | |
(stat) | オブジェクトID | |
ProgBar_SetRange 設置後に設定値を変更する |
int | 対象のオブジェクトID |
int | 最小値、バーがまったくないときの値 | |
int | 最大値、いっぱいになったときの値 | |
int | 1Stepの増加量 | |
val = ProgBar_GetPos( ) 現在位置を取得する |
int | 対象のオブジェクトID |
stat | 現在の位置 | |
ProgBar_SetPos 現在の位置を設定する |
int | 対象のオブジェクトID |
int | 新しい値 | |
ProgBar_Step 1Step進める |
int | 対象のオブジェクトID |
val = ProgBar_GetEnable( ) 今の状態を取得する |
int | 対象のオブジェクトID |
stat |
0 (待機中)
1 (通常)
2 (エラー状態)
3 (ポーズ状態)
|
|
ProgBar_SetEnable 今の状態を設定する |
int | 対象のオブジェクトID |
int |
0 (待機中)
1 (通常)
2 (エラー状態)
3 (ポーズ状態)
|
|
int |
待機中の場合のみ
バーの中を走る光の速さ
|
/*==================================================================== プログレスバーモジュール(ControlObjectModule2.2号) HSP3.3RC1 2011. 8. 4 暫定作成 HSP3.3 2011.11. 6 修正:CreateでObjIDが返るように ---------------------------------------------------------------------- プログレスバーを設置する ProgBar_Create 横幅, 縦幅, flag, 最小値, 最大値, 1Stepの増加量, 現在位置 flag +1(縦型にする) +2(減量の時もなめらかに動く) stat オブジェクトID プログレスバーの範囲を指定する ProgBar_SetRange オブジェクトID, 最小値, 最大値, 1ステップの増加量 プログレスバーの現在の位置を取得する関数 ProgBar_GetPos( オブジェクトID ) プログレスバーの位置を指定する ProgBar_SetPos オブジェクトID, 新しい位置 プログレスバーの値を1ステップ進める ProgBar_Step オブジェクトID プログレスバーの現在の状態を取得する関数 ProgBar_GetEnable( オブジェクトID ) stat 0(待機中) or 1(通常) or 2(エラー状態) or 3(ポーズ状態) プログレスバーの現在の状態を指定する ProgBar_SetEnable オブジェクトID, flag, speed flag プログレスバーをどの状態にするかを示す数値 0(待機中) or 1(通常) or 2(エラー状態) or 3(ポーズ状態) speed 待機中の場合、バーの中を走る光の速さを指定できる(大きいほど遅い) ====================================================================*/ #ifndef ProgressBarModuleIncluded #define ProgressBarModuleIncluded #module ProgressBarModule #define PBM_GETRANGE $0407 ;バーの取りうる値の有効範囲 #define PBM_SETRANGE $0401 ; lparam = (最大<<16)|最小 #define PBM_SETRANGE32 $0406 ; wparam = どっちか lparam = そっち #define PBM_GETPOS $0408 ;現在の値 #define PBM_SETPOS $0402 #define PBM_DELTAPOS $0403 ;ステップした時に何所に止まるかの値を返すかも? #define PBM_STEPIT $0405 ;1ステップする #define PBM_GETSTEP $040D ;ステップした時の増減値 #define PBM_SETSTEP $0404 #define PBM_GETBARCOLOR $040F ;テーマが無効のとき、有効!? #define PBM_SETBARCOLOR $0409 #define PBM_GETBKCOLOR $040E ;テーマが有効のとき、無効!? #define PBM_SETBKCOLOR $2001 #define PBM_SETMARQUEE $040A ;待機中的なやつ wparam=1/0 lparam=speed #define PBM_GETSTATE $0411 ;バーの状態 #define PBM_SETSTATE $0410 #define PBST_NORMAL $0001 ;ふつう #define PBST_ERROR $0002 ;エラー終了したよみたいな #define PBST_PAUSED $0003 ;ポーズ状態(ユーザー入力待ちの時とか。。。) #define WS_CHILD $40000000 ;いつもの #define WS_VISIBLE $10000000 ;いつもの #define PBS_SMOOTH $00000001 ;なめらかに伸びる(?) #define PBS_VERTICAL $00000004 ;縦に伸びるやつ #define PBS_MARQUEE $00000008 ;待機中的な? #define PBS_SMOOTHREVERSE $00000010 ;値が減る時もなめらかに動く #uselib "user32.dll" #func SetWindowLong "SetWindowLongA" int, int, int #func GetWindowLong "GetWindowLongA" int, int #define GWL_STYLE -16 #deffunc ProgBar_Create int x, int y, int f, int n, int m, int s, int p, local i ib = WS_CHILD | WS_VISIBLE | PBS_SMOOTH; | PBS_MARQUEE if f & 1 : ib = ib | PBS_VERTICAL ;縦要素 if f & 2 : ib = ib | PBS_SMOOTHREVERSE ;なめらかにプリン要素 winobj "msctls_progress32", "", 0, ib, x, y, 0, 0 : i = stat ProgBar_SetRange i, n, m, s ProgBar_SetPos i, p return i #deffunc ProgBar_SetRange int i, int n, int m, int s sendmsg objinfo(i, 2), PBM_SETRANGE32, n, m sendmsg objinfo(i, 2), PBM_SETSTEP, s, 0 return #defcfunc ProgBar_GetPos int i sendmsg objinfo(i, 2), PBM_GETPOS, 0, 0 return stat #deffunc ProgBar_SetPos int i, int p sendmsg objinfo(i, 2), PBM_SETPOS, p, 0 return #deffunc ProgBar_Step int i sendmsg objinfo(i, 2), PBM_STEPIT, 0, 0 return #defcfunc ProgBar_GetEnable int i GetWindowLong objinfo(i, 2), GWL_STYLE : if stat & PBS_MARQUEE : return 0 ;待機中 sendmsg objinfo(i, 2), PBM_GETSTATE, 0, 0 if stat == PBST_NORMAL : return 1 if stat == PBST_ERROR : return 2 if stat == PBST_PAUSED : return 3 return -1 #deffunc ProgBar_SetEnable int i, int f, int p ib = ProgBar_GetEnable(i) : if f == ib : return ;変わらない。 if ib == 0 { ;無効状態?から有効状態になるとき GetWindowLong objinfo(i, 2), GWL_STYLE SetWindowLong objinfo(i, 2), GWL_STYLE, stat ^ PBS_MARQUEE ;フラグをさげとく。 } if f == 0 { GetWindowLong objinfo(i, 2), GWL_STYLE SetWindowLong objinfo(i, 2), GWL_STYLE, stat | PBS_MARQUEE ;フラグづけ。 sendmsg objinfo(i, 2), PBM_SETMARQUEE, 1, p } if f == 1 : sendmsg objinfo(i, 2), PBM_SETSTATE, PBST_NORMAL if f == 2 : sendmsg objinfo(i, 2), PBM_SETSTATE, PBST_ERROR if f == 3 : sendmsg objinfo(i, 2), PBM_SETSTATE, PBST_PAUSED return ; http://www.tvg.ne.jp/menyukko/ ; Copyright(C) 2011 衣日和 All rights reserved. #global #endif