Поиграемся в таймер и 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); // Устанавливаем таймер
}
Вуаля!, работа нашей программы:


