Progress Controlコントロールの使用


1.コントロールのプロパティの設定
smoothではデフォルトはfalseで、進捗バーが一格変わっていることを示し、trueに設定すると水流のように変化しますが、私がテストしたときはwin 7では同じようで、変化していませんでしたが、XPでは違いがありました.
プロパティsmoothReserveのデフォルトはfalseです.これでは、進捗バーは常に一方向に変化しますが、trueに設定すると、進捗バーが一番端まで行くときは、一番端から端まで行くのではなく、
端から歩き始める.
2.クラスウィザードでコントロールに変数m_を追加Pro、同時にwindowsメッセージWV_TIMEERで応答し、対応する関数を追加すればよい.
3.初期化コントロール
    
// , OnInitial 
m_pro.SetRange( 0, MAX_RANGE );// 
m_pro.SetPos( 0 );// 
SetTimer( PROGRESS1_ID, 20, NULL );
//PROGRESS1_ID , m_pro
// OnTimer 

// OnTimer 
void CProgressControlDlg::OnTimer(UINT_PTR nIDEvent)
{
	// TODO:  / 
	int nPos, nMaxRange;
	CProgressCtrl  *pro;
	switch( nIDEvent )
	{
	case PROGRESS1_ID:
		pro = ( CProgressCtrl *)GetDlgItem( IDC_PROGRESS1 );
		break;
	default:
		return ;
	}
	// , 
	/*pro->GetRange( nPos, nMaxRange );
	nPos = pro->GetPos()+PROGRESS_INCREASE;
	if( nPos>nMaxRange ) nPos = 0;
	pro->SetPos( nPos );*/
	pro->OffsetPos( PROGRESS_INCREASE );//PROGRESS_INCREASE 
	pro->GetRange( nPos, nMaxRange );
	nPos = pro->GetPos();
	if( nPos>=nMaxRange ) pro->SetPos( 0 );
	CDialogEx::OnTimer(nIDEvent);
}