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

  • 相关阅读:
    服务部署 RPC vs RESTful
    模拟浏览器之从 Selenium 到splinter
    windows程序设计 vs2012 新建win32项目
    ubuntu python 安装numpy,scipy.pandas.....
    vmvare 将主机的文件复制到虚拟机系统中 安装WMware tools
    ubuntu 修改root密码
    python 定义类 简单使用
    python 定义函数 两个文件调用函数
    python 定义函数 调用函数
    python windows 安装gensim
  • 原文地址:https://www.cnblogs.com/geore/p/5792641.html
Copyright © 2011-2022 走看看