CTimer类, timeSetEvent 实现

 
//头文件 Timer.h
#ifndef _TIMER_H_
#define _TIMER_H_


class CTimer
{
private:
    unsigned int  m_nIDTimer;
public:

    CTimer();
    virtual ~CTimer();
    virtual void OnTimer(UINT uID, UINT uMsg, DWORD dw1, DWORD dw2);
    unsigned int SetTimer(UINT uDelay);
    void KillTimer();
    static void CALLBACK TimeProc(UINT uID,UINT uMsg,DWORD dwUser,DWORD dw1, DWORD dw2);
};

#endif //(_TIMER_H_)
//Timer.cpp
#include "stdafx.h"
#include "Timer.h"

#include <MMSYSTEM.H>   
#pragma comment(lib, "WINMM.LIB")


CTimer::CTimer()
{
    m_nIDTimer=NULL;
}

CTimer::~CTimer()
{
    if (m_nIDTimer)
    {
        timeKillEvent(m_nIDTimer);
        m_nIDTimer=NULL;
    }
}

unsigned int CTimer::SetTimer(UINT uDelay)
{
    if (m_nIDTimer) timeKillEvent(m_nIDTimer);
    m_nIDTimer=timeSetEvent(uDelay, 1, TimeProc, (DWORD)this, TIME_PERIODIC | TIME_CALLBACK_FUNCTION);
    return m_nIDTimer;
}

void CTimer::KillTimer()
{
    if (m_nIDTimer)
    {
        timeKillEvent(m_nIDTimer);
        m_nIDTimer=NULL;
    }
}

void CTimer::OnTimer(UINT uID, UINT uMsg, DWORD dw1, DWORD dw2)
{
}

void CALLBACK CTimer::TimeProc(UINT uID,UINT uMsg,DWORD dwUser,DWORD dw1, DWORD dw2)
{
    CTimer *pTimer=(CTimer *)dwUser;
    if (pTimer)
    {
        pTimer->OnTimer(uID, uMsg, dw1, dw2);
    }
}


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值