1. 程式人生 > >CProgressCtrl進度條 使用方法總結

CProgressCtrl進度條 使用方法總結

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);
	}
}