1.类的静态成员变量
.h 类声明入下
1 class A 2 { 3 public: 4 static int x; 5 };
.cpp文件
这样初始化. int A::x = 0;
2.定时器使用
1.SetTimer(HWND,UINT,UINT,TIMERPROC);
第一个参数设置为捕获该定时消息的窗口句柄, 第二个参数是定时器的id,第三个是以毫秒为单位的定时长度,最后一个参数设置为NULL,可以使窗口的回调函数进行处理WM_TIMER消息。一般来 说,在窗口创建时进行SetTimer调用;在回调函数中添加WM_TIMER的响应。然后再窗口销毁的时候进行计时器的销 毁:KillTimer(HWND,UINT);参数分别是窗口句柄和定时器ID。
2.SetTimer(HWND,UINT,UINT,TIMERPROC);与第一种方法唯一的区别就是最后一个参数不是NULL,而是一个自己 定义的回调函数,这样,WM_TIMER消息将被自己定义回调函数获取,进行处理。同样要在结束使用的时候KillTimer(HWND,UINT);
注:类中的回调成员函数必须为静态的
.h文件
1 #ifndef _TIMER_H 2 #define _TIEER_H 3 class Timer 4 { 5 public: 6 Timer(); 7 8 ~Timer(); 9 10 static VOID CALLBACK MyTimerProc(HWND hwnd,UINT message,UINT iTimerID,DWORD dwTime); 11 }; 12 #endif
.cpp 文件
1 #include "Timer.h" 2 #include <windows.h> 3 4 Timer::Timer() 5 { 6 ::SetTimer(this,1000,1000,(TIMERPROC)MyTimerProc); 7 } 8 9 Timer::~Timer() 10 { 11 ::KillTimer(this,1000); 12 } 13 14 VOID CALLBACK Timer::MyTimerProc(HWND hwnd,UINT message,UINT iTimerID,DWORD dwTime) 15 { 16 //add your code 17 }
3.IDtimer = SetTimer(HWND,UINT,UINT,TIMERPROC);将第一个参数设置为NULL ,第二个参数设置为0,第三个和第四个参数的设置与第二种方法一致,这样创建一个定时器将返回一个定时器ID,在销毁定时器时调用 KillTimer(NULL,IDtimer)。这种方式适合多次定时容易混淆定时器ID的程序,因为其返回值管理定时器ID,而不要自己去管理。