C++类的静态成员变量初始化 Win32 API 定时器使用

时间:2023-03-09 18:26:11
C++类的静态成员变量初始化    Win32 API 定时器使用

1.类的静态成员变量

.h 类声明入下

 class A
{
public:
static int x;
};

.cpp文件

这样初始化.
int A::x = ;

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文件

 #ifndef _TIMER_H
#define _TIEER_H
class Timer
{
public:
Timer(); ~Timer(); static VOID CALLBACK MyTimerProc(HWND hwnd,UINT message,UINT iTimerID,DWORD dwTime);
};
#endif

.cpp 文件

 #include "Timer.h"
#include <windows.h> Timer::Timer()
{
::SetTimer(this,,,(TIMERPROC)MyTimerProc);
} Timer::~Timer()
{
::KillTimer(this,);
} VOID CALLBACK Timer::MyTimerProc(HWND hwnd,UINT message,UINT iTimerID,DWORD dwTime)
{
//add your code
}

3.IDtimer = SetTimer(HWND,UINT,UINT,TIMERPROC);将第一个参数设置为NULL ,第二个参数设置为0,第三个和第四个参数的设置与第二种方法一致,这样创建一个定时器将返回一个定时器ID,在销毁定时器时调用 KillTimer(NULL,IDtimer)。这种方式适合多次定时容易混淆定时器ID的程序,因为其返回值管理定时器ID,而不要自己去管理。