zoukankan      html  css  js  c++  java
  • 基于MFC的Media Player播放器制作的SetTimer函数介绍

    |   版权声明:本文为博主原创文章,未经博主允许不得转载。

      SetTimer是一种API函数,位于user32.dll中。你想每隔一段时间执行一件事的的时候,你可以使用它。 使用定时器的方法比

    较简单,通常告诉Windows一个时间间隔,然后Windows以此时间间隔周期性触发程序。通常有两种方法来实现:发送

    WM_TIMER消息和调用应用程序定义的回调函数。不需要指定定时器时,可以调用对应的KillTimer函数销毁指定的时钟。(也就是

    说你在某个函数中使用了SetTimer函数的话,并且指定了时间间隔,那么程序运行是每个一段时间就会执行它)

      要使用SetTimer函数那么我们首先要在函数体内添加每一个timer的处理代码;也就是在OnTimer()函数实现,这个函数我们要

    自己来实现,下面的函数OnTimer()需通过ClassWizard(Ctrl+W)来添加;如下图操作:

         

      上面的步骤完成之后,在CPandaPlayer.cpp中就会自动生成一个OnTimer()的函数;如下

    1 void CPandaPlayerDlg::OnTimer(UINT nIDEvent) 
    2 {
    3     // TODO: Add your message handler code here and/or call default
    4     //在这里我们添加自己的实现
    5     CDialog::OnTimer(nIDEvent);
    6 }

      

      如下实现:

     1 void CPandaPlayerDlg::OnTimer(UINT nIDEvent) 
     2 {
     3     // TODO: Add your message handler code here and/or call default
     4     switch(nIDEvent)
     5     {
     6     case 0:
     7         switch(model)
     8         {
     9         case 1:
    10             KillTimer(0);
    11             //函数代码省略
    12             ......
    13             break;
    14         case 2:
    15             KillTimer(0);
    16             //函数代码省略
    17             ......
    18             break;
    19         default:
    20             MessageBox(_T("出错!即将退出程序!"),_T("ERROR"),MB_OK);
    21             exit(0);
    22             break;
    23         }
    24         break;
    25     }
    26     CDialog::OnTimer(nIDEvent);
    27 }

      实现上面的OnTimer()函数之后,我们就可使用SetTimer()函数来实现我们自己的功能了;如下示例:

    1 //播放函数
    2 void CPandaPlayerDlg::OnPlay() 
    3 {
    4     // TODO: Add your control notification handler code here
    5     m_MediaControl.play();    
    6     SetTimer(0,20,NULL);
    7 }

      *说明:0:计时器的名称;20:时间间隔,单位是毫秒;NULL:使用OnTimer函数(第三个参数就是回调函数地址)。

      上面我们设置了SetTimer()函数,当我们不需要了的时候我们可以通过KillTimer(nIDEvent)函数来取消计时器。

    1 case 2:
    2     KillTimer(0);
    3     //此处代码省略
    4     .......        
    5     break;

    百度百科关于此函数的介绍,链接:  SetTimer

  • 相关阅读:
    减肥 day1
    这两天的学习内容
    小马激活工具激活系统导致系统崩溃
    mac OS X下Java项目环境搭建+IntelliJ IDEA Jrebel插件安装与破解+Office 2016破解版安装
    JDK 动态代理实现原理
    php ajax提交post请求出现数组被截断情况的解决方法
    mac OS X下git代码行统计命令
    mac OS X下安装Redis及Thinkphp3.1使用Redis
    linux服务器git pull/push时提示输入账号密码之免除设置
    linux服务器修改ftp默认21端口方法
  • 原文地址:https://www.cnblogs.com/geore/p/5792641.html
Copyright © 2011-2022 走看看