闻心阁

一蓑烟雨看苍生,半壶浊酒笑红尘

VC计时器实例演示

2011-06-24 约 1 分钟读完 搬砖秘籍

之前写过一篇说进度条的文章,有个高手朋友告诉我说可以自己设置一个计时器,每固定一段时间让进度条走一格,感觉这个想法不错。于是实践了一下,网上许多关于计时器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);

}

效果图:

看,进度条逐渐“勃起”了,有木有!

相关附件:完整代码下载