VC计时器实例演示

之前写过一篇说进度条的文章,有个高手朋友告诉我说可以自己设置一个计时器,每固定一段时间让进度条走一格,感觉这个想法不错。于是实践了一下,网上许多关于计时器SetTimer和OnTimer的用法,这里就不说了,直接列举一个实例吧。

STEP 1 在OnInitDialog在添加SetTimer

//20052008需要手动添加
BOOL ProgressYS::OnInitDialog(void) { CDialog::OnInitDialog(); m_pro.SetRange(0,100); m_pro.SetStep(10); SetTimer( IDTIMER1 ,1000,NULL); return 0; }

STEP 2 用OnTimer函数响应定时器

int a=0; void ProgressYS::OnTimer(UINT_PTR nIDEvent) { // TODO: 在此添加消息处理程序代码和/或调用默认值 if (a==10) { KillTimer(IDTIMER1); OnOK(); } SetDlgItemText(IDC_STATIC_YS,_T("正在处理")); m_pro.StepIt(); a++; CDialog::OnTimer(nIDEvent); }
效果图: 看,进度条逐渐“勃起”了,有木有! 相关附件:完整代码下载