MFC基於對話方塊程式設計例項:使用“未定義進度”的進度條(有一節小進度在進度條中滾動)
阿新 • • 發佈:2019-02-20
效果展示-------
(由於gif的錄製問題,進度顯示不連貫,實際上效果很不錯的)
程式例項-------
1、開啟Visual Studio(此文以VS2010做例子),新建一個基於對話方塊的MFC程式,命名為Progress。
2、向對話方塊中拖入一個Progress控制元件、一個Check Box,調整好控制元件和對話方塊的大小。
3、設定ID:進度條IDC_PROGRESS、複選框IDC_CHECK,注意大小寫
4、更改進度條的屬性:Marquee為True。
5、為進度條新增CProgressCtrl變數:m_progress
6、在CProressDlg的OnInitDialog函式中新增程式碼:
m_progress.SetMarquee(TRUE,30); //設定進度條的進度段長度
((CButton*)GetDlgItem(IDC_CHECK))->SetCheck(1); //預設複選框為選中狀態
7、為複選框新增按下處理程式OnBnClickedCheck,函式程式碼如下:
void CProgressDlg::OnBnClickedCheck() { // TODO: 在此新增控制元件通知處理程式程式碼 BOOL bChecked = ((CButton*)GetDlgItem(IDC_CHECK))->GetCheck(); //把複選框選中狀態傳遞給bChecked if(bChecked) //如果複選框被選中 m_progress.ModifyStyle(NULL,WS_VISIBLE); //使進度條可見 else //如果複選框沒有被選中 m_progress.ModifyStyle(WS_VISIBLE,NULL); //使進度條不可見 Invalidate(); //重繪視窗 }
8、現在可以生成應用程式了。
9、啟動除錯,就可以看到效果。預設進度條顯示,複選框選中,取消複選框選擇即可隱藏進度條;再次選中即可出現進度條。