Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1040045
  • 博文数量: 264
  • 博客积分: 6005
  • 博客等级: 大校
  • 技术积分: 2798
  • 用 户 组: 普通用户
  • 注册时间: 2007-08-08 20:15
文章分类

全部博文(264)

文章存档

2011年(42)

2010年(213)

2009年(4)

2008年(2)

2007年(3)

分类:

2010-06-20 22:57:46

当执行到程序的某一行代码时,需要添加计时器,就用这条语句(一般在对话框初始化时设置如下):

SetTimer(1, 1000, NULL); // nIDEvent:1 , nElapse: 1000 毫秒,触发函数 空

SetTimer函数的参数如下:

UINT_PTR SetTimer(UINT_PTR nIDEvent, UINT nElapse,
  void (CALLBACK* lpfnTimer)(HWND, UINT, UINT_PTR, DWORD));

设置好后计时器立马生效,1秒后计时器发生中断,在代码所在的类中进行捕捉:

1.在该类的消息中添加:

BEGIN_MESSAGE_MAP(CTab1, CDialog)  // CTab1是自己定义的一个类
    //...
    ON_WM_TIMER() //添加此行
    //...
END_MESSAGE_MAP()

2.所在的类中添加成员函数:

void OnTimer(UINT_PTR nIDEvent);

3.添加函数的代码,即捕捉后的执行代码:

void MyTest::OnTimer(UINT_PTR nIDEvent)
{
    switch (nIDEvent)
    {
    case 1:  // 计时器1
             // 处理的代码
        KillTimer(1);
    // 删除此计时器
    //否则计时器中断完后会自动重新开始计时,
    //到下一次中断时还会发生新的中断

               break;

    case 2:  // 计时器2
               .... // 处理的代码
               break;
    default:
              
               KillTimer(nIDEvent);
               break;
    }
}

阅读(3910) | 评论(0) | 转发(0) |
0

上一篇:什么是RFID技术

下一篇:arm交叉编译器网站

给主人留下些什么吧!~~