#pragma once class CProgressBar : public ATL::CDialogImpl { public: enum {IDD = IDD_PROGRESSBAR}; BEGIN_MSG_MAP_EX(CProgressBar) MSG_WM_TIMER(OnTimer) MSG_WM_INITDIALOG(OnInitDialog) MSG_WM_DESTROY(OnDestroy) END_MSG_MAP() BOOL OnInitDialog(CWindow wndFocus, LPARAM lInitParam) { SetTimer(0, 500, NULL); m_ProgressBarCtrl = GetDlgItem(IDC_PROGRESS1); m_ProgressBarCtrl.SetPos(0); m_ProgressBarCtrl.SetStep(5); m_ProgressBarCtrl.SetRange(0, 100); return TRUE; } void OnTimer(UINT_PTR nIDEvent) { m_ProgressBarCtrl.StepIt(); } void OnDestroy() { KillTimer(0); } void ResetStep() { m_ProgressBarCtrl.SetPos(0); } private: CProgressBarCtrl m_ProgressBarCtrl; };