Windows编程:计时器消息的处理、销毁计时器
来源:互联网 发布:mac好玩的游戏推荐 编辑:程序博客网 时间:2024/06/07 21:40
计时器消息的处理
当不使用回调函数时程序会收到 WM_TIMER 消息, 这时只要像处理普通消息一样处理 WM_TIMER 消息就行了, 如果有多个计时器, 可以从 wParam 参数中根据计时器的ID作不同的处理, 例如:
case WM_TIMER: switch(wParam) { case 1: [处理ID为1的计时器] break; case 2: [处理ID为2的计时器] break ; ... } return 0 ;
(2)使用回调函数的计时器
当计时器创建时指定好回调函数时, 回调函数可以像下面的写法进行:
VOID CALLBACK TimerProc( HWND hwnd, UINT message, UINT iTimerID, DWORD dwTime ) { [处理 WM_TIMER 消息] }
当不同的计时器使用同一个回调函数时, 可以根据回调函数的 iTimerID 参数来区分不同的计时器
例如:
switch(iTimerID) { case 1: //处理ID为1的定时器 [...] break; case 2: //处理ID为2的定时器 [...] break; ... }
销毁计时器
BOOL KillTimer( HWND hWnd, //窗口句柄 UINT_PTR uIDEvent //计时器ID );
要销毁一个计时器, 必须知道该计时器的ID, 所以保留计时器的ID也是十分重要的, 你可以在任何时候销毁一个已经创建的计时器, 包括在处理计时器消息时。 最好在程序退出之前销毁完所有的已创建的计时器, 一个不错的办法是在处理 WM_DESTROY 消息时对于那些没有销毁的全部进行销毁。
需要注意的是, 当成功销毁一个计时器后, 该计时器所产生的 WM_TIMER 消息并不会从消息队列中移除, 如果消息队列中还有没有处理的 WM_TIMER 消息, 那么即使销毁了该计时器, 应用程序还是会有可能处理到没有处理完的 WM_TIMER 消息。阅读全文
1 0
- Windows编程:计时器消息的处理、销毁计时器
- Windows编程:计时器的创建
- Windows编程之计时器
- Windows平台的计时器
- 计时器(销毁后的时间也计算)
- cocos2d-js销毁计时器
- windows 计时器
- 服务器计时器、Windows 计时器和线程计时器
- windows核心编程-可等待的计时器内核对象
- windows下的时间计时器
- 服务器计时器与 Windows 计时器
- Android 编程下的计时器
- 计时器
- 计时器
- 计时器
- 计时器
- 计时器
- 计时器
- [YTU]_2477( C++习题 抽象基类)
- python)) unknown encoding: cp65001
- 解决ubuntu16.04 you are using pip version 8.1.1,however version 9.0.1 is available问题
- parallel scavenge 与parnew 区别
- [cocos2dx]这么了三天三夜的常见的ndk编译报错 dlopen failed: cannot locate symbol "atof" referenced by
- Windows编程:计时器消息的处理、销毁计时器
- org.springframework.dao.DuplicateKeyException问题解决
- springmvc笔记
- 商旅问题的分支限界法 java语言实现
- 总体方差与样本方差
- php_07_类/对象相关操作
- TensorFlow个人学习(下载安装&简单代码例子)
- appium -python版 windows上安装
- Python语法第1讲:快速入门