CProgressCtrl進度條 使用方法總結
阿新 • • 發佈:2019-02-11
CProgressCtrl 控制元件屬性
當我們在處理大程式時,常常需要耗很長時間(比如搜尋記憶體,複製大檔案),為了不讓使用者錯誤的認為系統已經宕機,我們要給程式新增進度條。
CProgressCtrl 類常用成員函式
void SetRange( short nLower, short nUpper ); 為進度條控制元件設定範圍的最小值和最大值,並重畫進度條來反映新的範圍,預設為0~100,若設定32位範圍,用下面的函式。 -0x8fff~0x7FFF |
void SetRange32( int nLower , int nUpper ); 為進度條控制元件設定範圍的最小值和最大值,並重畫進度條來反映新的範圍 |
void GetRange( int&nLower, int&nUpper ); 獲取進度條控制元件範圍的下限和上限 |
獲取進度條的當前位置 |
設定進度條的當前位置,並重畫進度條來反映新的位置 |
在原位置上增加一段數值,並重畫進度條來反映新的位置 |
設定進度條前進的步長,返回原來步長。配合StepIt使用 在進度條上會以百分比的形式顯示出來 步長/(最大值-最小值) |
程式碼示例
void CMFCControlTestDlg::OnBnClickedBtPro() { // TODO: 在此新增控制元件通知處理程式程式碼 m_progressCtrl.SetRange32(0, 1000);//設定進度條的最小值和最大值 int nFirstStep = m_progressCtrl.SetStep(10);//設定步長,返回原來步長,預設是最大值的1% for (int x=1; x<=10; x++) { m_progressCtrl.SetPos(x*10);//設定一個位置 int a = m_progressCtrl.StepIt();//在原位置上增加一個步長距離,配合SetStep使用,先設定步長才能使用這個 Sleep(100); } m_progressCtrl.OffsetPos(400);//在原位置上增加400距離 if (m_progressCtrl.GetPos() > 1000)//獲取當前位置 { m_progressCtrl.SetPos(0); } }