逐梦旅程:Windows游戏编程之从零开始6.1.2 WM_TIMER消息响应_逐梦旅程:Windows游戏编程之从零开始6.1.2 WM_TIMER消息响应试读-查字典图书网
查字典图书网
当前位置: 查字典 > 图书网 > 编程 > 逐梦旅程:Windows游戏编程之从零开始 > 6.1.2 WM_TIMER消息响应

逐梦旅程:Windows游戏编程之从零开始——6.1.2 WM_TIMER消息响应

6.1.2 WM_TIMER消息响应 响应定时器发出的WM_TIMER消息有两种方式,第一种是通过SetTimer函数的第四个参数,指定出响应函数。第二种反射就是在消息处理函数中,通过对WM_TIMER消息添加相应响应代码。 通常我们会采取第二种方式,在消息处理函数中对WM_TIMER消息添加相应响应代码。 首先,我们需要在调用SetTimer函数时,把第四个参数取为NULL。 1. SetTimer(hwnd,1,100,NULL); 然后,在消息响应函数中添加相应的响应函数,下面是消息处理函数WndProc()函数中的部分代码: 1. //-------------------【WndProc( )函数】----------------------------------- 2. // 描述:窗口过程函数WndProc,对窗口消息进行处理 3. //---------------------------------------------------------------------- 4. LRESULT CALLBACK WndProc( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam ) 5. { 6. switch( message ) //switch语句开始 7. { 8. case WM_TIMER: //定时器消息 9. Game_Paint(hwnd); //调用Game_Paint()函数进行窗口绘图 10. break; //跳出该switch语句 11. 12. case WM_DESTROY: //若是窗口销毁消息 13. Game_CleanUp(hwnd); //调用自定义的资源清理函数Game_CleanUp()进行退出前的资源清理 14. PostQuitMessage( 0 ); //向系统表明有个线程有终止请求。用来响应WM_DESTROY消息 15. break; //跳出该switch语句 16. 17. default: //若上述case条件都不符合,则执行该default语句 18. return DefWindowProc( hwnd, message, wParam, lParam ); //调用默认的窗口过程 19. } 20. 21. return 0; //正常退出 22. } 关键点在第8~10行,我们在WM_TIMER消息后调用了自定义的绘图函数Game_Paint(),这样程序在每次收到WM_TIMER消息后,就会调用一次Game_Paint()对画面进行重新绘制,从而达到了动画显示的效果。

展开全文


推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

《逐梦旅程:Windows游戏编程之从零开始》其他试读目录

• 6.1 定时器动画显示
• 6.1.2 WM_TIMER消息响应 [当前]
• 6.1.3 删除定时器
• 6.1.4 示例程序GDIdemo6
• 6.2 游戏循环动画显示
• 6.3 透明动画
• 6.4 排序贴图
• 6.5 章节小憩
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  •