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