当前位置: 首页 > news >正文

福州网站建设兼职/宁波seo教程网

福州网站建设兼职,宁波seo教程网,河南专业网站建设公司哪家好,做项目的网站用WM_TIMER来设置定时器 先请看SetTimer这个API函数的原型UINT_PTR SetTimer( HWND hWnd, // 窗口句柄 UINT_PTR nIDEvent, // 定时器ID,多个定时器时,可以通过该ID判断是哪个定时器 UINT uElapse, // 时间间隔,单位为毫秒 TIMERPROC …

用WM_TIMER来设置定时器


先请看SetTimer这个API函数的原型
UINT_PTR   SetTimer( 
HWND   hWnd,   // 窗口句柄 
UINT_PTR   nIDEvent,   // 定时器ID,多个定时器时,可以通过该ID判断是哪个定时器 
UINT   uElapse,   // 时间间隔,单位为毫秒 
TIMERPROC   lpTimerFunc   // 回调函数 
); 
例如
SetTimer(m_hWnd,1,1000,NULL); //一个1秒触发一次的定时器
在MFC程序中SetTimer被封装在CWnd类中,调用就不用指定窗口句柄了,例如:
UINT SetTimer(1,100,NULL);
第一个参数值1,表示此定时器的ID号。
第二个参数表示要等待100毫秒时间再重新 处理 一次。第三个参数在这种 方法 中一般用NULL。

注意:设置第二个参数时要注意,如果设置的等待时间比处理时间短,程序就会出问题了。


调用回调函数

此方法首先写一个如下格式的回调函数
void CALLBACK TimerProc(HWND hWnd,UINT nMsg,UINT nTimerid,DWORD dwTime);
然后再用SetTimer(1,100,TimerProc)函数来建一个定时器,第三个参数就是回调函数地址。

多个定时器的实现与应用

我们在安装定时器时都为其指定了ID,使用多个定时器时,该ID就发挥作用了。 不使用MFC时,当接收到WM_TIMER消息,WPARAM wParam中的值便是该定时器的ID。 使用MFC时就更简单了,我们为其增加WM_TIME的消息处理函数OnTimer即可,请看如下例子
void CTimerTestDlg::OnTimer(UINT  nIDEvent)
{switch(nIDEvent){case  24:  ///处理ID为24的定时器Draw1();break;case  25:  ///处理ID为25的定时器Draw2();break;}CDialog::OnTimer(nIDEvent);
}
当你用回调函数时,我们可以根据nTimerid的值来判断是哪个定时器,例如:
void CALLBACK TimerProc(HWND hWnd, UINT nMsg, UINT nTimerid, DWORD dwTime) 
{ switch(nTimerid) { case   1:   ///处理ID为1的定时器 Do1(); break; case   2:   ///处理ID为2的定时器 Do2(); break; } 
} 


取消定时器

不再使用定时器后,我们应该调用KillTimer来取消定时,KillTimer的原型如下
BOOL   KillTimer( HWND   hWnd,   //   窗口句柄 UINT_PTR   uIDEvent   //   ID 
); 

在MFC程序中我们可以直接调用KillTimer(int nIDEvent)来取消定时器。

实例如下

#include <windows.h> 
#include <iostream> 
#include <time.h>VOID CALLBACK TimerProc(HWND hwnd, UINT uMsg, UINT idEvent, DWORD dwTime) 
{ time_t now_time;now_time = time(NULL);struct tm *tblock;tblock = localtime(&now_time);printf("Local time is: %s",asctime(tblock));  
} void   main() 
{ int   timer1   =   100; HWND   hwndTimer;       MSG   msg;                     SetTimer(NULL,timer1,5000,TimerProc); int   itemp; while ( (itemp = GetMessage(&msg, NULL,NULL,NULL))&& (itemp!=0) &&  (-1 !=  itemp)) {   if   (msg.message   ==   WM_TIMER)   {   printf("I got the message.\n"); TranslateMessage(&msg);   DispatchMessage(&msg);     }   }   
} 
转自:http://blog.163.com/linzuxin@126/blog/static/340740572008101311552948/ (向原作者致敬)

http://www.jmfq.cn/news/5142799.html

相关文章:

  • 响应式网站模板下载/搜索引擎快速排名推广
  • 找人做网站要密码吗/关键词推广方式
  • 网站域名可以自己做吗/西安百度推广排名
  • 青岛微网站建设/真正的免费建站在这里
  • 郑州最近14天疫情情况/旺道网站排名优化
  • nginx wordpress conf/泰州seo网站推广
  • 如何做网站将数据上传/百度大数据查询平台
  • 国内php开发的电商网站有哪些/企业网站seo方案
  • 网站盗取图片/软件开发公司网站
  • 网页小游戏代码/福清seo
  • 网站开发合同答案/域名查询138ip
  • 旅游景点网站设计方案/seo需要掌握哪些技术
  • 自学网站开发需要看什么书/怎么创建网址
  • 网站除了域名还要什么用/今日新闻快报
  • 个人做企业 网站/东莞搜索网络优化
  • 网站营销合同/免费二级域名申请网站
  • 水墨 网站模板/上海推广seo
  • 猪八戒网做网站怎么样/域名网站查询
  • 织梦网站模板/网站优化推广价格
  • 网站如何做移动规则适配/seo每日工作
  • 前端视频教程网站/seo服务商技术好的公司
  • 上海工商网上办事平台/windows优化大师免费
  • php网站开发实例教程代码/2022百度搜索风云榜
  • 广州网站建设484186/微信小程序开发工具
  • 线上咨询预约网站建设方案/沈阳网络优化培训
  • 网站建设综合训练/投广告的平台有哪些
  • 郑州网站建设 郑州网站制作/百度热搜榜怎么打开
  • 哪些网站可以做招生信息/关键词首页排名优化公司推荐
  • 网站商城建设报告/新闻稿代写平台
  • 做网站jsp和php/百度竞价关键词优化