MFC程式設計執行個體二:進度條的使用
(以下藍色字型為手動添加的代碼)
(1) 建立一個基于對話框的應用程式。
(2) 在對話框界面添加一個文本框、一個進度條控件(Progress控件)和一個按鈕。
(3) 為Progress控件添加一個變量m_ctrlProgress,文本框添加一個變量m_strText。
(4) 在初始化函數中添加如下代碼
BOOL CBbbDlg::OnInitDialog()
{
CDialog::OnInitDialog();
…………
// TODO: Add extra initialization here
SetDlgItemText(IDC_EDIT1,_T("0%"));
//設定進度條的範圍
m_ctrlProgress.SetRange(0,100);
//設定進度條的每一步的增量
m_ctrlProgress.SetStep(10);
//設定進度條的目前位置
m_ctrlProgress.SetPos(0);
return TRUE; // return TRUE unless you set the focus to a control
}
(5) 輕按兩下按鈕,添加如下代碼:
void CBbbDlg::OnButton1()
{
// TODO: Add your control notification handler code here
UpdateData(false);
//擷取進度條的位置範圍的最大值和最小值
int nLower=0;
int nUpper=0;
m_ctrlProgress.GetRange(nLower,nUpper);
if(m_ctrlProgress.GetPos()==nUpper){
m_ctrlProgress.SetPos(nLower);
}
//用每一步的增量來增加進度條的目前位置
m_ctrlProgress.StepIt();
//擷取進度條的目前位置
int nPos=(m_ctrlProgress.GetPos()-nLower)*100/(nUpper-nLower);
CString s;
s.Format("%d",nPos);
m_strText=s+"%";
UpdateData(false);
}
運作結果:
(單擊測試按鈕進度條位置前進一步,要實作自動前進,需要設定定時器,本文暫時不介紹定時器的運用)
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicGcq5CM0gTOyITN5kjM0kjNycTO5EjMvwVP9E0VxVVNSdHVXhVM2xWTJxkW39Ve5c2LcRXZu5iNyEjLoBnLxQjMn1Wavw1LcpDc0RHaiojIsJye.jpg)
參考文獻:曲揚,Visual C++實效程式設計280例,人民郵電出版社,2009.3
參考:MFC 進度條 百度