在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

//

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

 

}

 

MFC中的KillTimer的更多相关文章

  1. GDI+学习笔记(九)带插件的排序算法演示器(MFC中的GDI+实例)

    带插件的排序算法演示器 请尊重本人的工作成果,转载请留言.并说明转载地址,谢谢. 地址例如以下: http://blog.csdn.net/fukainankai/article/details/27 ...

  2. MFC中使用FLASH

    一.准备工作 第一步:下载并安装Adobe Flash Player. 从官方网站(http://get.adobe.com/cn/flashplayer/)上下载最新的Flash Player(大约 ...

  3. MFC中换行实现

    在mfc中编辑框允许输入多行时,换行符被表示为<归位><换行>即"\r\n",用ascii码表示为13 10 如果为编辑框中想要输入换行,就请将编辑框的属性 ...

  4. MFC中的各种DC区别

    转载自:xntop的<区别MFC中的CClientDC.CWindowDC.CPaintDC.CMetaFileDC> CClientDC及其子类 1. CClientDC类只能在客户区绘 ...

  5. VC++ MFC中如何将应用程序的配置信息保存到注册表中(二)

    在上一篇中介绍了几个写入注册表数据和读取注册表数据的接口,并介绍了使用方法. 这一片教你如何使得你的应用程序在下次打开时保持上一次关闭前的状态. 在上一篇添加的代码的基础上,要添加WM_CLOSE消息 ...

  6. MFC中对话框类(Dialog)的应用

    转载http://hi.baidu.com/jackywdx/item/feee8041d2c2e12310ee1e85 Windows应用程序通常是通过对话框接收用户输入.向用户输出信息,本节介绍应 ...

  7. MFC中添加消息响应函数

    转自:http://blog.csdn.net/eddy_liu/article/details/8474677 目前,用MFC设计的Windows应用程序几乎都采用文档/视图结构.这种程序框架与简单 ...

  8. MFC中使用Duilib--2

    在上一篇文章"MFC中使用Duilib--1"中, 没有用到资源文件,即xml,本篇讲怎样加载文件. 1.  在exe输出目录下,创建一个skin目录,里面放入需要用到的图片文件, ...

  9. MFC中,如何自定义用户消息

    1.用处 在多个类之间传递消息.当需要响应用户操作,本类却无法实现时,可以向系统发出消息.然后让系统中的需要的位置实现它. 2.方法 2.1定义这个消息,并让拥有者发送这个这个消息,传递一个整型参数 ...

随机推荐

  1. 两个div如何并列 (转)

    两个div如何并列?当用到div+css代替table时,我习惯用两个方法: 1 <div id="parent"> <div id="child_1& ...

  2. SGU 200. Cracking RSA (高斯消元求自由变元个数)

    题目链接:http://acm.sgu.ru/problem.php?contest=0&problem=200 200. Cracking RSA time limit per test: ...

  3. TVS二极管和稳压二极管的区别

    TVS二极管和稳压二极管的区别 TVS管超过它的耐压值后,会瞬间导通短路,反应速度在ns级, 而稳压管是稳压作用的,超过它的稳压值,只要功率不超过它的耐受值,就会稳定在它的稳压值范围内. TVS是瞬态 ...

  4. USB组合设备 Interface Association Descriptor (IAD)

    Communication Device Class,简称CDCUSB Compound Device,USB复合设备USB Composite Device,USB组合设备 摘要USB复合设备 Co ...

  5. [廖雪峰] Git 分支管理(1):创建与合并分支(HEAD、master、dev、指针)

    每次提交,Git 都把它们串成一条时间线,这条时间线就是一个分支.截止到目前,只有一条时间线,在 Git 里,这个分支叫主分支,即 master 分支.HEAD 严格来说不是指向提交,而是指向 mas ...

  6. [Go] Cookie 使用简介

    Golang 的 Cookie web 开发免不了要和 cookie 打交道.Go 的 http 库也提供了 cookie 的相关操作. type Cookie struct { Name strin ...

  7. localhost,127.0.0.1 和 本机IP 三者的区别

    localhost.127.0.0.1和本机IP的区别如下: 1.首先 localhost 是一个域名,在过去它指向 127.0.0.1 这个IP地址.在操作系统支持 ipv6 后,它同时还指向ipv ...

  8. 使用Spire.Office for .NET(Word、Excel、PPT、PDF等)的初步感受

    前言 本文大部分内容来自http://www.codeproject.com/Articles/710747/First-thoughts-on-Spire-Doc-for-NET. 针对我个人来说, ...

  9. C++MFC编程笔记day05 文档类-单文档和多文档应用程序

    文档类 1 相关类    CDocument类-父类是CCmdTarget类,所以,文档类也能够处理菜单等               命令消息. 作用保存和管理数据.    注意事项:怎样解决断言错 ...

  10. docker 日志清理与设置

    清空 cat /dev/null >json.log docker-compose nginx: image: nginx:1.12.1 restart: always logging: dri ...