CProgressCtrl クラス

 

Visual Studio 2017 RC の最新のドキュメントの詳細については、Visual Studio 2017 RC ドキュメントをご参照ください。

Windows コモン プログレス バー コントロールの機能が用意されています。

class CProgressCtrl : public CWnd  

パブリック コンストラクター

名前説明
CProgressCtrl::CProgressCtrlCProgressCtrl オブジェクトを構築します。

パブリック メソッド

名前説明
CProgressCtrl::Create進行状況バー コントロールを作成し、それをアタッチ、CProgressCtrlオブジェクトです。
CProgressCtrl::CreateEx指定した Windows 拡張スタイルを使用して進行状況コントロールを作成し、それにアタッチ、CProgressCtrlオブジェクトです。
CProgressCtrl::GetBarColor現在の進行状況バー コントロールの進行状況インジケーターのバーの色を取得します。
CProgressCtrl::GetBkColor現在の進行状況バーの背景色を取得します。
CProgressCtrl::GetPos進行状況バーの現在位置を取得します。
CProgressCtrl::GetRange進行状況バー コントロールの範囲の下限と上限の制限を取得します。
CProgressCtrl::GetState現在の進行状況バー コントロールの状態を取得します。
CProgressCtrl::GetStep現在の進行状況バー コントロールの進行状況バーの増分値を取得します。
CProgressCtrl::OffsetPos指定された増分値で進行状況バー コントロールの現在位置を進め、新しい位置を反映するバーを再描画します。
CProgressCtrl::SetBarColor現在の進行状況バー コントロールの進行状況インジケーターのバーの色を設定します。
CProgressCtrl::SetBkColor進行状況バーの背景色を設定します。
CProgressCtrl::SetMarquee現在の進行状況バー コントロールのマーキー モードをオンまたはオフになります。
CProgressCtrl::SetPos進行状況バー コントロールの現在位置を設定し、新しい位置を反映するバーを再描画します。
CProgressCtrl::SetRange進行状況バー コントロールの最小値と最大の範囲を設定し、新しい範囲を反映するように、バーを再描画します。
CProgressCtrl::SetState現在の進行状況バー コントロールの状態を設定します。
増分進行状況バー コントロールの増分を指定します。
CProgressCtrl::StepIt増分の進行状況バー コントロールの現在位置を進めます (を参照してくださいSetStep) し、新しい位置を反映するように、バーを再描画します。

進行状況バー コントロールは、アプリケーションは、時間のかかる操作の進行状況を示すために使用できるウィンドウです。 左から右、システムで強調表示色として処理の進行状況に徐々 に塗りつぶされた四角形で構成されます。

進行状況バー コントロールでは、範囲と現在の位置を持ちます。 範囲は、操作の合計実行時間を表し、現在の位置は、アプリケーションが行った操作の完了に向けた進行状況を表します。 ウィンドウ プロシージャは、範囲と現在の位置を使用して、強調表示色で塗りつぶすに進行状況バーの割合を決定します。 範囲と現在位置の値が符号付き整数として表されるので現在位置の値の可能な範囲は â €"2,147, 483,648 を 2,147, 483,647 包括的です。

使用する方法についてCProgressCtrlを参照してくださいコントロールを使用して CProgressCtrlします。

CObject

CCmdTarget

CWnd

CProgressCtrl

ヘッダー: afxcmn.h

CProgressCtrl オブジェクトを構築します。

CProgressCtrl();

コメント

構築した後、CProgressCtrlオブジェクトで呼び出すCProgressCtrl::Create進行状況バー コントロールを作成します。

      // Create a progress control object on the stack.
      CProgressCtrl myCtrl;

      // Create a progress control object on the heap.
      CProgressCtrl* pmyCtrl = new CProgressCtrl;   

進行状況バー コントロールを作成し、それをアタッチ、CProgressCtrlオブジェクトです。

virtual BOOL Create(
    DWORD dwStyle,  
    const RECT& rect,  
    CWnd* pParentWnd,  
    UINT nID);

パラメーター

dwStyle
進行状況バー コントロールのスタイルを指定します。 ウィンドウ stylesdescribed 内の任意の組み合わせを適用CreateWindowで、 Windows SDK、だけでなく、以下のプログレス バー コントロールのスタイルをコントロールにします。

  • PBS_VERTICAL表示は、進行状況を垂直方向に、上下からです。 このフラグが進行状況バー コントロールは、右側に水平方向に、左を表示します。

  • PBS_SMOOTH段階的な移行がスムーズに進行状況バー コントロールの入力が表示されます。 このフラグを設定せず、コントロールがブロックで入力されます。

rect
進行状況バー コントロールのサイズと位置を指定します。 いずれかになります、 CRectオブジェクトまたはRECT構造体。 指定された座標のクライアント領域を基準と、コントロールは、子ウィンドウをある必要があるため、pParentWndです。

pParentWnd
通常、進行状況バー コントロールの親ウィンドウの指定、CDialogです。 ことはできませんNULL です。

nID
進行状況バー コントロールの ID を指定します

戻り値

TRUE場合、CProgressCtrlオブジェクトが正常に作成された以外の場合FALSEします。

コメント

構築する、 CProgressCtrl&2; つのステップ内のオブジェクト。 最初に、作成するコンス トラクターを呼び出す、CProgressCtrlオブジェクト、し、呼び出す作成、進行状況バー コントロールを作成します。

      CProgressCtrl myCtrl;

      // Create a smooth child progress control.
      myCtrl.Create(WS_CHILD|WS_VISIBLE|PBS_SMOOTH, CRect(10,10,200,30), 
         pParentWnd, IDC_PROGRESSCTRL);   

コントロール (子ウィンドウ) を作成し、関連付けます、CProgressCtrlオブジェクトです。

virtual BOOL CreateEx(
    DWORD dwExStyle,  
    DWORD dwStyle,  
    const RECT& rect,  
    CWnd* pParentWnd,  
    UINT nID);

パラメーター

dwExStyle
作成されるコントロールの拡張スタイルを指定します。 拡張ウィンドウ スタイルの一覧は、次を参照してください。、dwExStyleパラメーター CreateWindowExで、Windows SDKです。

dwStyle
進行状況バー コントロールのスタイルを指定します。 ウィンドウ スタイル」に記載の任意の組み合わせを適用CreateWindowで、Windows SDKです。

rect
参照、 RECT構造体のサイズとのクライアント座標で、作成するウィンドウの位置を表すpParentWndします。

pParentWnd
コントロールの親ウィンドウへのポインター。

nID
コントロールの子ウィンドウの id。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

コメント

使用CreateExの代わりに作成、Windows 拡張スタイルの先頭で指定された、Windows の拡張スタイルを適用するWS_EXします。

現在の進行状況バー コントロールの進行状況インジケーターのバーの色を取得します。

COLORREF GetBarColor() const;  

戻り値

として表される現在の進行状況バーの色、 COLORREF値、またはCLR_DEFAULT場合、進行状況インジケーターのバーの色は既定の色。

コメント

このメソッドは、送信、 PBM_GETBARCOLORで説明されているメッセージ、Windows SDKです。

現在の進行状況バーの背景色を取得します。

COLORREF GetBkColor() const;  

戻り値

として表される現在の進行状況バーの背景色、 COLORREF値。

コメント

このメソッドは、送信、 PBM_GETBKCOLORで説明されているメッセージ、Windows SDKです。

進行状況バーの現在位置を取得します。

int GetPos();

戻り値

進行状況バー コントロールの位置。

コメント

進行状況バー コントロールの位置が画面で、物理的な場所ではありませんではなく、上部と下部の範囲に示されているSetRangeします。

      CProgressCtrl myCtrl;

      // Create a child progress control.
      myCtrl.Create(WS_CHILD|WS_VISIBLE, CRect(10,10,200,30), pParentWnd, 
         IDC_PROGRESSCTRL);

      // Set the new position to half of the current position.
      myCtrl.SetPos(myCtrl.GetPos()/2);   

現在の下限と上限の制限または進行状況バー コントロールの範囲を取得します。

void GetRange(
    int& nLower,  
    int& nUpper);

パラメーター

nLower
進行状況バー コントロールの下限値を受け取る整数への参照。

nUpper
進行状況バー コントロールの数の上限を受け取る整数への参照。

コメント

この関数によって参照される整数への下限と上限値の範囲の値をコピーするnLowernUpper、それぞれします。

      CProgressCtrl myCtrl;

      // Create a child progress control.
      myCtrl.Create(WS_CHILD|WS_VISIBLE, CRect(10,10,200,30), pParentWnd, 
         IDC_PROGRESSCTRL);

      // Set the position to be one-fourth of the total range.
      int nLower, nUpper;
      myCtrl.GetRange(nLower, nUpper);
      myCtrl.SetPos((nUpper-nLower)/4);   

現在の進行状況バー コントロールの状態を取得します。

int GetState() const;  

戻り値

次の値の&1; つは、現在の進行状況バー コントロールの状態:

状態
PBST_NORMAL処理中
PBST_ERRORエラー
PBST_PAUSEDPaused

コメント

このメソッドは、送信、 PBM_GETSTATEで説明されているメッセージ、Windows SDKです。

次のコード例では、進行状況バー コントロールにプログラムでアクセスするために使用される m_progressCtrl 変数を定義します。 この変数は次の例で使用されています。

	// Variable to access the progress control
	CProgressCtrl m_progressCtrl;

次のコード例では、現在の進行状況バー コントロールの状態を取得します。

// Display the current state of the progress control.
	CString str = _T("The progress control state is ");
	int progState = m_progressCtrl.GetState();
	if (progState == PBST_NORMAL)
		str += _T("NORMAL");
	else if (progState == PBST_PAUSED)
		str += _T("PAUSED");
	else if (progState == PBST_ERROR)
		str += _T("ERROR");
	else 
		str += _T("unknown");
	AfxMessageBox(str, MB_ICONEXCLAMATION);

現在の進行状況バー コントロールの進行状況バーの増分値を取得します。

int GetStep() const;  

戻り値

進行状況バーの増分値。

コメント

増分する量は、呼び出しをCProgressCtrl::StepIt進行状況バーの現在位置が増加します。

このメソッドは、送信、 PBM_GETSTEPで説明されているメッセージ、Windows SDKです。

次のコード例では、進行状況バー コントロールにプログラムでアクセスするために使用される m_progressCtrl 変数を定義します。 この変数は次の例で使用されています。

	// Variable to access the progress control
	CProgressCtrl m_progressCtrl;

次のコード例では、現在の進行状況バー コントロールの増分値を取得します。

// Get the step increment for the progress control.
	CString str;
	int incr = m_progressCtrl.GetStep();
	str.Format(_T("The step increment is %d."), incr);
	AfxMessageBox(str, MB_ICONEXCLAMATION);

指定された増分値で、進行状況バー コントロールの現在位置を進めますnPosし、新しい位置を反映するように、バーを再描画します。

int OffsetPos(int nPos);

パラメーター

nPos
位置を進める量。

戻り値

進行状況バー コントロールの前の位置。

      CProgressCtrl myCtrl;

      // Create a child progress control.
      myCtrl.Create(WS_CHILD|WS_VISIBLE, CRect(10,10,200,30), pParentWnd, 
         IDC_PROGRESSCTRL);

      // Offset the position by one-fourth of the total range.
      int nLower, nUpper;
      myCtrl.GetRange(nLower, nUpper);
      myCtrl.OffsetPos((nUpper-nLower)/4);   

現在の進行状況バー コントロールの進行状況インジケーターのバーの色を設定します。

COLORREF SetBarColor(COLORREF clrBar);

パラメーター

パラメーター説明
[入力] clrBarA COLORREF新しい進行状況インジケーターのバーの色を指定する値。 指定CLR_DEFAULT既定の色を使用する進行状況バーが発生します。

戻り値

として表される、進行状況インジケーターのバーの前のカラー、 COLORREF値、またはCLR_DEFAULT進行状況インジケーターのバーの色が既定の色である場合。

コメント

SetBarColorメソッドは、進行状況バーの場合にのみ、色を設定、 Windows Vistaテーマが有効でないです。

このメソッドは、送信、 PBM_SETBARCOLORで説明されているメッセージ、Windows SDKです。

次のコード例では、進行状況バー コントロールにプログラムでアクセスするために使用される m_progressCtrl 変数を定義します。 この変数は次の例で使用されています。

	// Variable to access the progress control
	CProgressCtrl m_progressCtrl;

次のコード例では、進行状況バーの色を赤、緑、青、または既定値に変更します。

// Set the progress bar color to red, green, blue, or 
// the system default. The SetBarColor method has an 
// effect only if the Windows system theme is Classic.
void CCProgressCtrl_s1Dlg::OnSetbarcolorRed()
{
	m_progressCtrl.SetBarColor(RGB(255,0,0));
}

void CCProgressCtrl_s1Dlg::OnSetbarcolorGreen()
{
	m_progressCtrl.SetBarColor(RGB(0,255,0));
}

void CCProgressCtrl_s1Dlg::OnSetbarcolorBlue()
{
	m_progressCtrl.SetBarColor(RGB(0,0,255));
}

void CCProgressCtrl_s1Dlg::OnSetbarcolorOri()
{
	m_progressCtrl.SetBarColor(CLR_DEFAULT);
}

進行状況バーの背景色を設定します。

COLORREF SetBkColor(COLORREF clrNew);

パラメーター

clrNew
A COLORREF新しい背景色を指定する値。 指定のCLR_DEFAULT進行状況バーの既定の背景色を使用する値。

戻り値

COLORREF直前の背景色を示す値、またはとき場合は、既定の色の背景色です。

      CProgressCtrl myCtrl;

      // Create a smooth child progress control.
      myCtrl.Create(WS_CHILD|WS_VISIBLE|PBS_SMOOTH, CRect(10,10,200,30), 
         pParentWnd, IDC_PROGRESSCTRL);

      // Set the background color to red.
      myCtrl.SetBkColor(RGB(255, 0, 0));   

現在の進行状況バー コントロールのマーキー モードをオンまたはオフになります。

BOOL SetMarquee(
    BOOL fMarqueeMode,   
    int nInterval);

パラメーター

パラメーター説明
[入力] fMarqueeModetrue、マーキー モードを有効にするか、falseマーキー モードをオフにします。
[入力] nIntervalマーキー アニメーションの更新間隔をミリ秒単位の時間。

戻り値

このメソッドは常に true を返します。

コメント

マーキー モードがオンになっていると、進行状況バーがアニメーション化されようにスクロール シアター マーキー サインオンします。

このメソッドは、送信、 PBM_SETMARQUEEで説明されているメッセージ、Windows SDKです。

次のコード例では、進行状況バー コントロールにプログラムでアクセスするために使用される m_progressCtrl 変数を定義します。 この変数は次の例で使用されています。

	// Variable to access the progress control
	CProgressCtrl m_progressCtrl;

次のコード例では、開始時およびマーキー スクロール アニメーションを停止します。

// Turn the marquee animation on or off.
void CCProgressCtrl_s1Dlg::OnSetmarqueeOn()
{
	m_progressCtrl.SetMarquee(TRUE, nMarqueeInterval);
}

void CCProgressCtrl_s1Dlg::OnSetmarqueeOff()
{
	m_progressCtrl.SetMarquee(FALSE, nMarqueeInterval);
}

コントロールの現在の位置で指定されたバーの進行状況の設定nPosし、新しい位置を反映するように、バーを再描画します。

int SetPos(int nPos);

パラメーター

nPos
進行状況バー コントロールの新しい位置。

戻り値

進行状況バー コントロールの前の位置。

コメント

進行状況バー コントロールの位置が画面で、物理的な場所ではありませんではなく、上部と下部の範囲に示されているSetRangeします。

      CProgressCtrl myCtrl;

      // Create a child progress control.
      myCtrl.Create(WS_CHILD|WS_VISIBLE, CRect(10,10,200,30), pParentWnd, 
         IDC_PROGRESSCTRL);

      // Set the range to be 0 to 100.
      myCtrl.SetRange(0, 100);

      // Set the position to be half, 50.
      myCtrl.SetPos(50);   

進行状況バーのコントロールの範囲の上限と下限を設定し、新しい範囲を反映するように、バーを再描画します。

void SetRange(
    short nLower,  
    short nUpper);

 
void SetRange32(
    int nLower,  
    int nUpper);

パラメーター

nLower
範囲の下限を指定 (既定値は&0;)。

nUpper
範囲の上限を指定します (既定値は 100)。

コメント

メンバー関数は、SetRange32プログレス コントロールの 32 ビットの範囲を設定します。

      CProgressCtrl myCtrl;

      // Create a smooth child progress control.
      myCtrl.Create(WS_CHILD|WS_VISIBLE|PBS_SMOOTH, CRect(10,10,200,30), 
         pParentWnd, IDC_PROGRESSCTRL);

      // Set the range to be 0 to 100.
      myCtrl.SetRange(0, 100);   

現在の進行状況バー コントロールの状態を設定します。

int SetState(int iState);

パラメーター

パラメーター説明
[入力] iState進行状況バーに設定する状態。 次のいずれかの値を使用します。

- PBST_NORMAL-進行中
- PBST_ERROR-エラー
- PBST_PAUSED-一時停止

戻り値

現在の進行状況バー コントロールの直前の状態。

コメント

このメソッドは、送信、 PBM_SETSTATEで説明されているメッセージ、Windows SDKです。

次のコード例では、進行状況バー コントロールにプログラムでアクセスするために使用される m_progressCtrl 変数を定義します。 この変数は次の例で使用されています。

	// Variable to access the progress control
	CProgressCtrl m_progressCtrl;

次のコード例は、現在の進行状況バー コントロールの状態を一時停止または処理中に設定します。

// Set the progrees control to normal or paused state.
void CCProgressCtrl_s1Dlg::OnSetstateNormal()
{
	m_progressCtrl.SetState(PBST_NORMAL);
}

void CCProgressCtrl_s1Dlg::OnSetstatePaused()
{
	m_progressCtrl.SetState(PBST_PAUSED);
}

進行状況バー コントロールの増分を指定します。

int SetStep(int nStep);

パラメーター

nStep
新しい増分値です。

戻り値

直前の増分します。

コメント

増分値は、大量の呼び出しCProgressCtrl::StepIt進行状況が向上バーの現在の位置。

既定の増分は 10 です。

      CProgressCtrl myCtrl;

      // Create a child progress control.
      myCtrl.Create(WS_CHILD|WS_VISIBLE, CRect(10,10,200,30), pParentWnd, 
         IDC_PROGRESSCTRL);

      // Set the size to be 1/10 of the total range.
      int nLower, nUpper;
      myCtrl.GetRange(nLower, nUpper);
      myCtrl.SetStep((nUpper-nLower)/10);   

増分の進行状況バー コントロールの現在位置を進め、新しい位置を反映するバーを再描画します。

int StepIt();

戻り値

進行状況バー コントロールの前の位置。

コメント

増分値が設定されて、CProgressCtrl::SetStepメンバー関数。

      CProgressCtrl myCtrl;

      // Create a child progress control.
      myCtrl.Create(WS_CHILD|WS_VISIBLE, CRect(10,10,200,30), pParentWnd, 
         IDC_PROGRESSCTRL);

      // Advance the position to the next step.
      myCtrl.StepIt();   

MFC サンプル CMNCTRL2
CWnd クラス
階層図

表示: