Поиграемся в таймер и progress bar:
1. Создадим MFC проект:
2. Выберем Dialog Based, язык English:
3. Отключим всё кроме 3D Controls, заголовок пусть будет ProgressBar Demo:
4. Так должно выглядеть окно:
5. Добавим событие WM_TIMER:
6. Добавим событие на кнопку OnBtnStart:
7. Добавим typeи member для ProgressBar, у меня оно называется m_pbDemo:
8. Добавим код:
Код MFCProgressBarTimerDemoDlg.h:
class CMFCProgressBarTimerDemoDlg : public CDialog { private: unsigned int m_nTimer; // ID таймера int count; // счётчик ... }
Код MFCProgressBarTimerDemoDlg.cpp:
// Срабатывает событие, при таймере void CMFCProgressBarTimerDemoDlg::OnTimer(UINT nIDEvent) { // TODO: Add your message handler code here and/or call default m_pbDemo.SetPos(this->count); // Устанавливаем значение в ProgressBar this->count++; // Увеличиваем счётчик // Если счётчик > 99, то: if(this->count > 99) { KillTimer(m_nTimer); // Удаляем таймер this->SetWindowText("END"); // Меняем заголовок диалогового окна END MessageBeep(MB_ICONINFORMATION); // Бибикаем } CDialog::OnTimer(nIDEvent); } // Срабатывает событие, при нажатие на кнопку Start! void CMFCProgressBarTimerDemoDlg::OnBtnStart() { // TODO: Add your control notification handler code here this->SetWindowText("ProgressBar Demo"); // Устанавливаем заголовок диалогового окна ProgressBar Demo m_pbDemo.SetRange(0, 100); // Устанавливаем что, ProgressBar от 0 до 100 this->count = 0; // Сбрасываем счётчик m_nTimer = SetTimer(1,100,0); // Устанавливаем таймер }
Вуаля!, работа нашей программы: