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);

}

效果图:



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

相关附件:完整代码下载

 标签: MFC, 计时器

作者  :  sailor

仅仅看明白了还不够,能把别人给讲明白了才算及格。


  1. 可惜我用不上这个,呵呵

    June 24th, 2011 at 06:00 pm 回复
      1. sailor
        sailor

        :sad: :sad: :sad: 我们天天跟这个打交道

        June 24th, 2011 at 06:39 pm 回复
  2. 还真的改了啊,嘿嘿 :mrgreen: 不过我不是高手哦,菜鸟一个 :oops:

    June 24th, 2011 at 08:42 pm 回复
      1. sailor
        sailor

        恩,那是,主要我也是新手,所以有人提出什么,就想去学习

        June 24th, 2011 at 08:58 pm 回复
  3. 邓肯
    3#
    邓肯

    好专业的技术

    June 24th, 2011 at 09:14 pm 回复
      1. sailor
        sailor

        这个木有技术,被我们专业给逼的~

        June 24th, 2011 at 09:28 pm 回复
  4. 面条
    4#
    面条

    :!: 我只有无情的飘过 :cool:

    June 24th, 2011 at 09:46 pm 回复
      1. sailor
        sailor

        飘吧,呵呵,欢迎常来飘

        June 24th, 2011 at 09:48 pm 回复
  5. 没事关注这些东西,了解了解也很不错的

    June 26th, 2011 at 03:53 pm 回复
      1. sailor
        sailor

        呵呵,谢谢关注

        June 26th, 2011 at 07:42 pm 回复
  6. haitanghuizi
    6#
    haitanghuizi

    主要是想请教哈计时器的用法啊,呵呵~~

    August 11th, 2011 at 05:25 pm 回复
      1. sailor
        sailor

        额,这个很久之前写的了,现在不怎么用了

        August 14th, 2011 at 12:58 am 回复


最新文章