zoukankan      html  css  js  c++  java
  • MFC中的KillTimer

    在Dialog中添加一个Timer。

    用如下的代码停用一个Timer总是不好用:

    void CDialog2::OnTimer (UINT TimerVal)

    {

    //////////////////////////////////////////////

    //

    // Stop the timer

    //

    //////////////////////////////////////////////

     

     

        //MessageBox(TEXT("TIMER"), TEXT("IDT_TIMER_0"), MB_OK|MB_SYSTEMMODAL);

     

        if (!::KillTimer(NULL,TimerVal))

    {

            MessageBox(TEXT("Unable to stop timer"), TEXT("IDT_TIMER_0"), MB_OK|MB_SYSTEMMODAL);

    }

     

    //////////////////////////////////////////////

    //

    // Process the event

    //

     

    //////////////////////////////////////////////

     

     

    //////////////////////////////////////////////

    //

    // Restart the timer, if needed, before exiting

    //

    //////////////////////////////////////////////

     

    }

     

    弄了半天,发现用下面的代码就可以成功。

    void CDialog2::OnTimer (UINT TimerVal)

    {

    //////////////////////////////////////////////

    //

    // Stop the timer

    //

    //////////////////////////////////////////////

     

     

        //MessageBox(TEXT("TIMER"), TEXT("IDT_TIMER_0"), MB_OK|MB_SYSTEMMODAL);

     

        if (!KillTimer(TimerVal))

    {

            MessageBox(TEXT("Unable to stop timer"), TEXT("IDT_TIMER_0"), MB_OK|MB_SYSTEMMODAL);

    }

     

    //////////////////////////////////////////////

    //

    // Process the event

    //

     

    //////////////////////////////////////////////

     

     

    //////////////////////////////////////////////

    //

    // Restart the timer, if needed, before exiting

    //

    //////////////////////////////////////////////

     

    }

     

    另外根据MSDN, KillTimer对已经发到Message queue的Timer消息不能杀死。

    (MSDN链接:https://msdn.microsoft.com/en-us/library/windows/desktop/ms644903(v=vs.85).aspx )

    所以比如如下的代码,会弹出一次对话框。

    void CDialog2::OnTimer (UINT TimerVal)

    {

    //////////////////////////////////////////////

    //

    // Stop the timer

    //

    //////////////////////////////////////////////

     

     

        //MessageBox(TEXT("TIMER"), TEXT("IDT_TIMER_0"), MB_OK|MB_SYSTEMMODAL);

     

        if (!KillTimer(TimerVal))

    {

            MessageBox(TEXT("Unable to stop timer"), TEXT("IDT_TIMER_0"), MB_OK|MB_SYSTEMMODAL);

    }

     

     

        MessageBox(TEXT("timer here."), TEXT("IDT_TIMER_0"), MB_OK|MB_SYSTEMMODAL);

     

    //////////////////////////////////////////////

    //

    // Process the event

    //

     

    //////////////////////////////////////////////

     

     

    //////////////////////////////////////////////

    //

    // Restart the timer, if needed, before exiting

    //

    //////////////////////////////////////////////

     

    }

     

  • 相关阅读:
    java 导入导出的 命令
    点击 table 单元格 取值
    SQL Server存储过程创建和修改
    js正则匹配过滤 特殊字符
    java 学习框架
    Table 表单样式
    Table 表单
    Table 固定表头的几种方法
    .Net 高效开发之不可错过的实用工具
    sql 批量插入数据到Sqlserver中 效率较高的方法
  • 原文地址:https://www.cnblogs.com/time-is-life/p/8412870.html
Copyright © 2011-2022 走看看