zoukankan      html  css  js  c++  java
  • C++类的静态成员变量初始化 Win32 API 定时器使用

    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,而不要自己去管理。

  • 相关阅读:
    oracle 强杀进程
    oracle查询使用频率和磁盘消耗需要缓存大小
    Oracle定时器执行多线程
    Python
    Python- XML模块
    Python-标准库之OS模块
    Python
    Python-时间复杂度
    Python-冒泡排序
    Python-正则表达式
  • 原文地址:https://www.cnblogs.com/chechen/p/4105972.html
Copyright © 2011-2022 走看看