Windows学习笔记15——定时器
来源:互联网 发布:西安办公软件培训中心 编辑:程序博客网 时间:2024/06/14 23:19
1、关于定时器(计时器)
Windows计时器是PC硬件和ROM BIOS架构下的计时器的一种相对简单的扩充。Windows本身处理硬件中断,Windows应用程序不拦截BIOS中断。
因为Windows应用程序从正常的消息队列中取得WM_TIMER消息,所以应用程序在进行其他处理时不必担心WM_TIMER消息会意外中断程序。
Windows应用程序不能以高于解析度的频率(Windows98, 每秒18.2次, WindowsNT,每秒约100次)接收WM_TIMER消息。
WM_TIMER消息是非同步的,在消息队列中是低优先级的,和WM_PAINT消息一样,只有在消息队列中没有其他消息时才接收它们。(由此可以知道WM_TIMER消息并不能准确地定时)
WIndows不能持续向消息队列中放入多个WM_TIMER消息,而是将多余的WM_TIMER消息组合成一个消息。
2、定时器的使用
方法一:
SetTimer(hwnd, TIMERID, uiMsecInterval, NULL);
KillTimer(hwnd, TIMERID);
方法二:
void CALLBACK TimerProc(HWND hwnd, UINT message, UINT iTimerID, DWORD dwTime)
{
处理WM_TIMER消息
}
SetTimer(hwnd, iTimerID, uiMsecInterval, TimerProc);
KillTimer(hwnd, iTimerID);
Windows发送WM_TIMER消息给TimerProc回调函数,而不是WndProc。
方法三:
iTimerID = SetTimer(NULL, 0, wMescInterval, TimerProc);
KillTimer(NULL, iTimerID);
3、GetLocalTime取得目前时间
SYSTEMTIME结构
typedef struct _SYSTEMTIME
{
WORD wYear; WORD wMonth; WORD wDayOfWeek; WORD wDay; WORD wHour;
WORD wMinute; WORD wSecond; WORD wMilliseconds;
}SYSTEMTIME, *PSYSTEMTIME;
SYSTEMTIME结构主要用于GetLocalTime和GetSystemTime函数,GetSystemTime函数得到目前的世界时间。GetLocalTime函数得到当地时间,依据电脑所在时区。
此外,还有SetLoaclTime和SetSystemTime。
4、格式化时间
格式化日期和时间的最简单方法是:调用GetDataFormat 和GetTimeFormat函数
GetLocaleInfo函数取得与指定的“本地”有关的信息。
原型:int GetLocaleInfo(LCID Locale, LCTYPE LCType, LPTSTR lpLCData, int cchData);
参数:Locale :(long) 欲获得信息的“地方”ID,
5、WM_SETTINGCHANGE
如果使用者更改了任何系统设定,则会将WM_SETTINGCHANGE消息传送给所有的应用程序。
- Windows学习笔记15——定时器
- windows编程学习笔记之定时器
- Symbian学习笔记(7)——定时器
- Win32学习笔记——定时器消息
- STM32学习笔记——基础定时器
- 2013.8.15 学习笔记《windows核心编程》(十二) 鼠标消息与定时器消息
- windows编程学习笔记(5)定时器的使用
- Windows定时器学习
- 《嵌入式通信软件设计》学习笔记——定时器管理
- STM32学习笔记——使用SysTick定时器做延时
- stm32学习笔记——定时器(1)
- SDL2.0学习笔记5——定时器模块
- STM32学习笔记——系统定时器SysTick
- TQ2440 学习笔记—— 22、系统时钟和定时器
- stm32学习笔记——入门定时器中断
- STM32F4学习笔记5——SysTick定时器
- Linux驱动学习笔记之一——高精度定时器2
- STM32单片机学习笔记——SysTick系统定时器
- 网络编程之路---4
- 寻找直方图中的最大矩形 Largest Rectangle in Histogram
- 保护模式编程——保护的详尽意义:通过调用门转移特权级
- 矩阵快速幂 模板
- 【浏览器】window.innerWidth/innerHeight (CSS像素) Viewport+滚动条
- Windows学习笔记15——定时器
- Ubuntu用户目录文件名中文变成英文
- nyoj-770-放射密码
- Codeforces 392C Yet Another Number Sequence(矩阵快速幂)
- Linux下的时间函数与定时器
- java中switch用法
- Android UI
- hdu3537 Daizhenyang's Coin 翻硬币,(Mock Turtles游戏)
- poj 1037 DP