非窗口类中使用定时器——定时器使用非静态成员

来源:互联网 发布:南京装修公司推荐知乎 编辑:程序博客网 时间:2024/05/06 09:03

不多说,直接上代码

MyTimer.h

#pragma once#include <Windows.h>#include <iostream>#include <map>#include <string>using namespace std;class CMytimer{public:CMytimer(void) {};~CMytimer(void) {};typedef std::map<unsigned int, CMytimer*> TimerMap;void startTimer();void killTimer();static void  CALLBACK  TimerProc(HWND hWnd, UINT nMsg,UINT nTimerid,DWORD dwTime);unsigned intm_nTimerID;stringm_str;static TimerMapm_sTimerMap;};

MyTimer.cpp

#include "Mytimer.h"CMytimer::TimerMap CMytimer::m_sTimerMap;void CMytimer::startTimer(){m_nTimerID = ::SetTimer(NULL,NULL,3000,TimerProc); m_str = "再静态成员函数中访问非静态成员";m_sTimerMap[m_nTimerID] = this;}void CMytimer::killTimer(){::KillTimer(NULL, m_nTimerID);}void  CALLBACK CMytimer::TimerProc( HWND hWnd, UINT nMsg,UINT nTimerid,DWORD dwTime ){cout << m_sTimerMap[nTimerid]->m_str;}


0 0
原创粉丝点击