下载帝国网站管理系统4.7正式版
 帝国论坛技术交流区网络编程定时器
帝国CMS4.7(UTF-8)版正式发布
中客:空间产品随时可无条件退款!
测试:生成20万数据共用107分钟
《帝国下载系统》全面免费
Mysql大数据备份工具下载
帝国CMS4.7在线演示
帝国软件旗下新站 - 站长工具
帝国CMS 4.7正式版下载
主题:定时器 [加入收藏夹]   

qh78560
用户头衔:书生

精华贴   :0
发贴数   :1
经验值   :7
注册时间:2008-03-10
信息 搜索 好友 发送悄悄话 《帝国网站管理系统V4.7》基础教程下载】   [第 1 楼]
定时器
标 题:定时器
作 者: xcode
网 站: http://edu.teamsourcing.com.cn

1.创建定时器

在应用程序需要使用定时器时,可以用SetTimer函数向Windows申请一个定时

器,要求系统在指定的时间以后“通知”应用程序,如果申请成功的话,系统会

以指定的时间周期调用SetTimer函数指定的回调函数,或者向指定的窗口过程

发送WM_TIMER消息。

使用定时器时还有一个要点就是定时器消息是一个低级别的消息,这表现在两个方面:首先就是Windows只有在消息队列中没有其他消息的情况下才会发送WM_TIMER消息,如果窗口过程忙于处理某个消息没有返回,使消息队列中有消息积累起来,那么WM_TIMER消息就会被丢弃,在消息队列再度空闲的时候,被丢弃的WM_TIMER消息不会被补发;其次,消息队列中不会有多条WM_TIMER消息,如果消息队列中已经有一条WM_TIMER消息,还没来得及处理,又到了定时的时刻,那么两条WM_TIMER消息会被合并成一条。
所以,应用程序不能依靠定时器来保证某件事情必须在规定的时刻被处理,另外,也不能依赖对定时器消息计数来确定已经过去了多少时间。
UINT_PTR SetTimer(
HWND hWnd, // 窗口句柄
UINT_PTR nIDEvent, // 定时器ID,多个定时器时,可以通过该ID判断是哪个定时器
UINT uElapse, // 时间间隔,单位为毫秒
TIMERPROC lpTimerFunc // 回调函数
);
例如
SetTimer(m_hWnd,1,1000,NULL); //一个1秒触发一次的定时器
void CALLBACK TimerProc(HWND hWnd,UINT nMsg,UINT nTimerid,DWORD dwTime);
然后再用SetTimer(1,100,TimerProc)函数来建一个定时器,第三个参数就是回调函数地址。

2.        销毁定时器
BOOL KillTimer(
HWND hWnd, // 窗口句柄
UINT_PTR uIDEvent // ID
);

3.        取windows时间
在Win32编程中,和获取系统时间相关的函数有3个:
SYSTEMTIME st;       
GetLocalTime(&st);  
        GetSystemTime
        GetTickCount
它们之间的区别是:
GetTickcount返回的是本次Windows启动以来的ms数,由于这是一个32位的整数,可以表示的范围是1~ffffffffh ms,所以当Windows连续运行49.7天以后,计数器会清零并重新开始。
GetLocalTime返回当前的时间,GetSystemTime返回当前的格林威治标准时间,这两个函数返回的时间数据包括年、月、日、时、分、秒、毫秒以及星期,数据比较多,应用程序需要预先设置一个SYSTEMTIME结构的缓冲区,并将缓冲区地址lpSystemTime当参数传递给函数,函数会把时间数据返回到这个缓冲区中。
SYSTEMTIME结构的定义如下:
typedef struct _SYSTEMTIME {
    WORD wYear;
    WORD wMonth;
    WORD wDayOfWeek;
    WORD wDay;
    WORD wHour;
    WORD wMinute;
    WORD wSecond;
    WORD wMilliseconds;
} SYSTEMTIME, *LPSYSTEMTIME;
和获取系统时间的函数相对应,可以用下面的两个函数设置系统时间:
SetLocalTime
SetSystemTime
同样,SetLocalTime中的参数代表本地时间,SetSysTime中的参数代表格林威治标准时间,在调用函数之前,要把需要设置的时间放到一个SYSTEMTIME结构中并把结构地址当做参数传递给Windows。

网 站: http://edu.teamsourcing.com.cn




2008-03-12 08:49:29 已设置保密 顶部 回复 引用 报告 编辑 删除

zhs05
用户头衔:秀才

精华贴   :0
发贴数   :266
经验值   :521
注册时间:2008-05-02
信息 搜索 好友 发送悄悄话 《帝国网站管理系统V4.7》零基础实例入门教程】   [第 2 楼]

顶顶 哦~~



109数据 1G高速双线空间+200M数据库 298元 免费预装帝国CMS www.109idc.com QQ:340416556
2008-05-11 17:39:29 已设置保密 顶部 回复 引用 报告 编辑 删除


快速回复
内容

使用EBB代码
使用smile代码
显示签名
自动分析url
自动分析img
表情                   
                
    (按 Ctrl+Enter 直接提交)
    顶部  加入收藏夹
关于帝国 | 广告服务 | 联系我们 | 法律声明 | 隐私条款 | 许可协议
Powered by: EBB Version 2.2.1