SetTimer and CreateWaitableTimer的例子(静态函数设置为回调函数,瑞士的网页,有点意思)

Timers (SetTimer and CreateWaitableTimer) in Windows

 

SetTimer

The following example creates a timer (that is not attached to a window) whose Timer Procedure creates 20 Message Boxes

#include <windows.h>

class foo_class {
  static int counter;
public:
  static void  __stdcall timer_proc(HWND,unsigned int, unsigned int, unsigned long) {
    if (counter++ < 20)
      MessageBox(0,"Hello","MessageBox",0);
    else
      PostQuitMessage(0);
  }
};

int foo_class::counter=0;

WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int) {

int iTimerID = SetTimer(0, 0, 300, foo_class::timer_proc);
  MSG m;
  while (GetMessage(&m,0,0,0)) {
    TranslateMessage(&m);
    DispatchMessage(&m);

   }
  return 1;
}

CreateWaitableTimer

This example demonstrates how to use Timers in windows. A timer will be set that is signalled for the first time 2 seconds after the first call to CreateWaitableTimer and then is signalled every 3/4th of a second.

#define _WIN32_WINNT 0x0400

#include <windows.h>
#include <process.h>
#include <stdio.h>

unsigned __stdcall TF(void* arg) {
  HANDLE timer=(HANDLE) arg;

  while (1) {
    WaitForSingleObject(timer,INFINITE);
    printf(".");
  }

}

int main(int argc, char* argv[]) {

  HANDLE timer = CreateWaitableTimer(
    0,
    false, // false=>will be automatically reset
    0);    // name

  LARGE_INTEGER li;

  const int unitsPerSecond=10*1000*1000; // 100 nano seconds

  // Set the event the first time 2 seconds
  // after calling SetWaitableTimer

  li.QuadPart=-(2*unitsPerSecond);
  SetWaitableTimer(
    timer,
    &li,
    750,   // Set the event every 750 milli Seconds
    0,
    0,
    false);

  _beginthreadex(0,0,TF,(void*) timer,0,0);

  // Wait forever,
  while (1) ;

  return 0;
}

http://www.adp-gmbh.ch/win/misc/timer.html

时间: 2024-10-09 07:11:19

SetTimer and CreateWaitableTimer的例子(静态函数设置为回调函数,瑞士的网页,有点意思)的相关文章

在Inspector 中 设置添加回调函数 - Unity3d编辑器扩展

在做一些开场动画或者其它指定事件触发 一类功能时,需要在编辑环境下设置添加回调函数. 一开始尝试直接使用delegate 来编写,测试发现没有效果,在谷歌搜索到Unity论坛有人提到 delegate 不能被序列化到Inspector 中使用,建议使用 UnityEvent . UnityEvent ,其实在UGUI中经常用到,只是平时不知道是它. 比如按钮的点击事件就是 直接从 UGUI Button 的源代码中搬运出来. 先提供一个带有 UnityEvent 的类 TimeEventPlug

菜菜鸟Zend Framework 2 不完全学习涂鸦(三)-- 例子功能设置

菜菜鸟Zend Framework 2 不完全学习涂鸦(三)-- 例子功能设置 这是涂鸦的第三篇,主要介绍一下ZF官网教程中所涉及的一些数据库方面的设置. 官网的教程时构建一个唱片的目录系统,包括唱片列表,增,删,改唱片信息. 注意:在开始教程之前,请确认: 1.是否已经打开了mod_rewrite功能 2.是否已经支持了 .htaccess 否则您除了访问首页之外将不能访问任何页面 一.系统功能设置 页面名称 页面功能说明 唱片列表(List of albums) 显示已有的所有唱片列表,同时

MATLAB 设置视点的函数view

MATLAB提供了设置视点的函数view.其调用格式为: view(az,el) az是azimuth(方位角)的缩写,EL是elevation(仰角)的缩写.它们均以度为单位.系统缺省的视点定义为方位角-37.5°,仰角30°. 当x轴平行观察者身体,y轴垂直于观察者身体时,az=0: 以此点为起点,绕着z轴顺时针运动,az为正,逆时针为负. EL 为观察者眼睛与xy平面形成的角度. 当观察者的眼睛在xy平面上时,el=0; 向上el为正,向下为负: 下面是一些例子:     AZ = -37

CKFinder 弹出窗口操作并设置回调函数

CKFinder 弹出窗口操作并设置回调函数 官方例子参考CKFinderJava-2.4.1/ckfinder/_samples/popup.html 写一个与EXT集成的小例子 Ext.define("MyButton", { extend : "Ext.Button", text : "ckfinder", initComponent : function() { var me = this; Ext.apply(me, { handler

js的回调函数 一些例子

这边用bootstrap 3.0的  上传控件做例子 下面是上传控件的一段完整的 js 操作 代码. <!-- 上传缩略图控件配置 --><script> // 定义这四个全局变量是 为了保存4张图片的uuid 在回调函数中每次保存 都覆盖前一张的名字 实现 用户可以重复添加取最终的结果保存入库 window.Picture1=""; //轮播图1的全局变量 window.Picture2=""; //轮播图2的全局变量 window.Pic

Android自学历程—回调函数的意思(源码+例子)

为什么会学习回调函数,那还要从线程说起.虽然以前写过一篇文章叫做“Android自学历程—多线程”,现在看看还是太年轻了. 在学习线程的时候,我试着看了看Handler的源码,于是对其中的Callback接口产生了兴趣.于是补自身不足,拿来学习学习.废话到此为止,整理思路,一起来学习. 下面这是一段Handler的源码 /** * Callback(回收) interface(界面) you can use when instantiating(例示) a Handler to avoid *

MFC 定时器 SetTimer 如何使用回调函数

创建工程名TestCallBack 自定义回调函数   定义为全局函数 在TestCallBackDlg.h文件开头定义 #pragma once void CALLBACK EXPORT TimerProc(HWND hWnd,UINT nMsg,UINT nTimerid,DWORD dwTime); 在TestCallBackDlg.cpp文件末尾实现函数 void CALLBACK EXPORT TimerProc(HWND hwnd,UINT message,UINT iTimerID

2015-07-23 JQuery第三课(JQuery元素:获取、添加、删除、设置、绑定、显示隐藏、回调函数、动画)

1.获取内容: text():获取文本内容.text获取的是文本内容,假设被指定的<div>里面还有各种标签,text也只获取里面的纯文本内容. html():获取括号内内容.而html则是获取里面的全部内容,包括标签也会一起打印出来. [例] $(“#d1”).text(“aaaaa”); //打印出 aaaaa $(“#d1”).html(“<div>aaaa</div>”); //打印出<div>aaaa</div> 2.添加元素: $(A

R语言笔记 R中设置图形参数--函数par()详解

R有着非常强大的绘图功能,我们可以利用简单的几行代码绘制出各种图形来,但是有时候默认的图形设置没法满足我们的需要,甚至会碰到各种各样的小问题:如坐标轴或者标题出界了,或者图例说明的大小或者位置遮挡住了图形,甚至有时候默认的颜色也不能满足我们的需求.如何进行调整呢?这就用到了"强大"的函数par().我们可以通过设定函数par()的各个参数来调整我们的图形,这篇博文就是对函数par()的各个参数进行一下总结. 函数par()的使用格式如下: par(..., no.readonly =