プログラミングのメモ帳(C/C++/HSP)

日々のプログラミングで気づいた点や小技集を紹介します。(Windows 10/XP/Vista、VC2017、HSP)

プログレスバー(まとめ)

2011年09月19日 15時20分08秒 | コントロール関連

プログレスバーのメッセージをまとめて紹介します。(戻る)

  1. 最小値/最大値の取得(PBM_GETRANGE)
  2. 最小値/最大値の設定(PBM_SETRANGE)
  3. 最小値/最大値の設定(PBM_SETRANGE32)
  4. 増分値の取得(PBM_GETSTEP)
  5. 増分値の設定(PBM_SETSTEP)
  6. 増分値だけ進める(PBM_STEPIT)
  7. 現在位置の取得(PBM_GETPOS)
  8. 現在位置の設定(PBM_SETPOS)
  9. 現在位置の相対設定(PBM_DELTAPOS)
  10. 背景色の取得(PBM_GETBKCOLOR)
  11. 背景色の設定(PBM_SETBKCOLOR)
  12. バー色の取得(PBM_GETBARCOLOR)
  13. バー色の設定(PBM_SETBARCOLOR)
  14. バー状態の取得(PBM_GETSTATE)
  15. バー状態の設定(PBM_SETSTATE)
  16. マーキーの操作(PBM_SETMARQUEE)

チュートリアル

  1. コモンコントロールの準備(InitCommonControls)
  2. PBM_SETRANG メッセージを送信して、最小値/最大値を指定。
  3. PBM_SETSTEP メッセージを送信して、1ステップの増分を指定。
  4. PBM_STEPIT メッセージを送信して、1ステップだけ増加。

最小値と最大値の取得

typedef struct {
    int iLow;       // 最小値
    int iHigh;      // 最大値
} PBRANGE, *PPBRANGE;
// 最小値の取得
DWORD dwMin = SendMessage( hWnd, PBM_GETRANGE, TRUE, NULL );

// 最大値の取得 DWORD dwMax = SendMessage( hWnd, PBM_GETRANGE, FALSE, NULL );
// 最小値と最大値の取得(戻り値は最小値) PBRANGE range; DWORD dwMin = SendMessage( hWnd, PBM_GETRANGE, TRUE, (LPARAM)&range ); 最小値:range.iLow 最大値:range.iHigh
// 最小値と最大値の取得(戻り値は最大値) PBRANGE range; DWORD dwMax = SendMessage( hWnd, PBM_GETRANGE, FALSE, (LPARAM)&range ); 最小値:range.iLow 最大値:range.iHigh

最小値と最大値の設定[16Bit]

// 16ビット値で最小値と最大値の設定
DWORD dwRange = SendMessage( hWnd, PBM_SETRANGE, 0, MAKELPARAM(最小値,最大値) );

最小値:LOWORD(dwRange)
最大値:HIWORD(dwRange)

最小値と最大値の設定[32Bit]

// 32ビット値で最小値と最大値の設定
DWORD dwRange = SendMessage( hWnd, PBM_SETRANGE32, 最小値, 最大値 );

最小値:LOWORD(dwRange)
最大値:HIWORD(dwRange)

増分値の取得

// 増分値の取得
DWORD dwStep = SendMessage( hWnd, PBM_GETSTEP, 0, 0 );

増分値の設定

// 増分値の設定
DWORD dwStep = SendMessage( hWnd, PBM_SETSTEP, 増分値, 0 );

増分値だけ進める

// 増分値だけ進める
DWORD dwStep = SendMessage( hWnd, PBM_STEPIT, 0, 0 );

現在位置の取得

// 現在位置の取得
UINT uPos = SendMessage( hWnd, PBM_GETPOS, 0, 0 );

現在位置の設定

// 現在位置の設定
UINT uPos = SendMessage( hWnd, PBM_SETPOS, 新しい位置, 0 );

現在位置の相対設定

// 現在位置の相対設定
UINT uPos = SendMessage( hWnd, PBM_DELTAPOS, 増加量, 0 );

背景色の取得

// 背景色の取得
COLORREF crBkColor = SendMessage( hWnd, PBM_GETBKCOLOR, 0, 0 );

// 既定色の判定 if ( SendMessage(hWnd,PBM_GETBKCOLOR,0,0) == CLR_DEFAULT ){ /* デフォルト色 */ } else{ /* デフォルト色以外 */ }

背景色の設定

// 背景色の設定
COLORREF crBkColor = SendMessage( hWnd, PBM_SETBKCOLOR, 0, 背景色 );

// 既定色の設定 COLORREF crBkColor = SendMessage( hWnd, PBM_SETBKCOLOR, 0, CLR_DEFAULT );

バー色の取得

// バー色の取得
COLORREF crBarColor = SendMessage( hWnd, PBM_GETBARCOLOR, 0, 0 );

// 既定色の判定 if ( SendMessage(hWnd,PBM_GETBARCOLOR,0,0) == CLR_DEFAULT ){ /* デフォルト色 */ } else{ /* デフォルト色以外 */ }

バー色の設定

// バー色の設定
COLORREF crBarColor = SendMessage( hWnd, PBM_SETBARCOLOR, 0, バー色 );

// 既定色の設定 COLORREF crBarColor = SendMessage( hWnd, PBM_SETBARCOLOR, 0, CLR_DEFAULT );

バー状態の取得

// バー状態の取得
DWORD dwState = SendMessage( hWnd, PBM_GETSTATE, 0, 0 );

バー状態の設定

// バー状態の設定
DWORD dwState = SendMessage( hWnd, PBM_SETSTATE, バーの状態, 0 );

マーキーの操作

// マーキー・アニメーションの再生(ON)
SendMessage( hWnd, PBM_SETMARQUEE, TRUE, 更新間隔 );

// マーキー・アニメーションの停止(OFF)
SendMessage( hWnd, PBM_SETMARQUEE, FALSE, 更新間隔 );

関連記事



コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« プログレスバー(マーキー操作) | トップ | ファイルサイズの取得(2) »
最新の画像もっと見る

コメントを投稿

コントロール関連」カテゴリの最新記事