为什么调用了KillTimer()函数后,还是会进入OnTimer函数?

2023-05-16

今天写MFC定时器代码时,发现调用了KillTimer()函数后,还是会进入OnTimer函数

实现如下:

  1. 通过按钮控制定时器的开关

// 按钮回调函数
void CtimerDlg::OnBnClickedButtonStart()
{
    // TODO: 在此添加控件通知处理程序代码
    m_bStart = !m_bStart;
    if (TRUE == m_bStart){
        // 如果点了启动,且定时器没开,则打开定时器
        if (0 == m_pReadStatuTimer){
            m_pReadStatuTimer = SetTimer(READ_STATUE_TIMER_ID, READ_STATUE_MS, 0);
        }

        // 把按钮显示成stop
        GetDlgItem(IDC_BUTTON_START)->SetWindowTextW(_T("stop"));

        // 重新计数
        m_nTimerCnt = 0;
    }
    else{
        // 如果再点了一次时,关定时器
        if (0 != m_pReadStatuTimer){
            KillTimer(m_pReadStatuTimer);
            m_pReadStatuTimer = 0;
        }

        // 把按钮显示成start
        GetDlgItem(IDC_BUTTON_START)->SetWindowTextW(_T("start"));
    }
}

// 定时器回调函数
void CtimerDlg::OnTimer(UINT_PTR nIDEvent)
{
    // TODO: 在此添加消息处理程序代码和/或调用默认值
    m_nTimerCnt++;
    // 更新计数值到EDIT1控件上
    CString str;
    str.Format(_T("%d"),m_nTimerCnt);
    GetDlgItem(IDC_EDIT1)->SetWindowTextW(str);

    CDialogEx::OnTimer(nIDEvent);
}

经过查找后,发现KillTimer()的参数写错了,参数应该是定时器ID,写成了定时器句柄了

修改成KillTimer(READ_STATUE_TIMER_ID);就能正常停止定时器了

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么调用了KillTimer()函数后,还是会进入OnTimer函数? 的相关文章

  • 【Ubuntu笔记】ubuntu18.04设置开机启动命令/脚本的三种方法(可sudo)

    转自微信 谭狗星 很多时候想开机时便启动想要启动的命令 xff08 甚至是需要sudo的命令 xff09 但是如何设置呢 xff0c 一般来说有以下三种方法 xff08 本文针对的是ubuntu18 04设置开机启动命令或者脚本 xff09
  • Pyperclip模块详解

    一 Pyperclip模块安装 Pyperclip模块兼容python2和python3 xff0c 能跨平台使用 安装指令如下 xff0c 在Anaconda的终端执行如下指令 pip install pyperclip 二 Pyperc
  • 如何在Ubuntu 18.04上安装Docker

    选项1 xff1a 使用默认存储库在Ubuntu上安装Docker 第1步 xff1a 更新软件存储库 更新本地软件数据库以确保可以访问最新版本 打开终端并输入 xff1a sudo apt get update 第2步 xff1a 卸载旧
  • iOS创建自己的pod库

    一 背景 在iOS开发中 xff0c 我们经常会使用到一些第三方库 xff0c 如AFNetworking SDWebImage等 xff0c 一般使用cocoapods来管理 本篇文章将介绍如何封装自己的pod库 二 封装步骤 1 在本地
  • Mac OS系统磁盘空间不断减少,直到为0

    问题描述 xff08 从网络摘录 xff09 xff1a 昨天上午Mac OS系统突然警告硬盘空间不足 xff0c 建议删除多余文件 经过清理后硬盘出现20G自由空间 xff0c 但今天系统再次警告硬盘空间不足 只好再次删除一些文件 xff
  • Git,Github和Gitlab简介和使用方法

    日期 xff1a 2016 08 04 来源 xff1a 简书 作者 xff1a frogoscar 字体 xff1a 大 中 小 来源 xff1a https www jianshu com p 8d497989f704 这年头不知道Gi
  • Ubuntu设置清华源

    为了在Ubuntu下安装软件快些 xff0c 需要使用国内的源 xff0c 比如清华源 步骤如下 xff1a 一 xff1a 备份源文件 cd etc apt 然后会显示下面的源文件sources list 输入命令行 xff1a cp为c
  • Git 中忽略某些文件或者文件夹

    Git 中忽略某些文件或者文件夹 有些时候 xff0c 你必须把某些文件放到Git工作目录中 xff0c 但又不能提交它们 xff0c 比如保存了数据库密码的配置文件啦 xff0c 等等 xff0c 每次git status都会显示 Unt
  • 教程:简单十步,在 iTunes 申请 App Store 退款

    你常在 App Store 买应用或音乐吗 xff1f 你肯定有因为买到坑爹的应用而心情糟糕 懊悔不已吧 xff1f 在这种情况下 xff0c 可能有一部分同学知道能向苹果提交退款申请 xff0c 但相信仍有很大一部分同学并不知道还有此等
  • Mac 终于有显示隐藏文件的快捷键了

    转载至 xff1a https hran me archives shortcuts to show hiden files in macos sierra html 在 macOS Sierra 之前 xff0c 要在 Finder 中查
  • UISearchBar的占位符 (Placeholder,包括图片文字) 如何居左显示 ?

    转载至 xff1a https blog csdn net qq 33226881 article details 76512656 UISearchBar的占位符 Placeholder 如何居左显示 xff1f 做项目的时候遇到这个问题
  • C语言冒泡排序

    1 基本原理 冒泡排序指的是在排序时 xff0c 每次比较数组中相邻的两个数组元素的值 xff0c 较小的数 xff08 从小到大排列 xff09 排在较大的数前面 排序的基本思想 两两相邻的元素进行比较 xff0c 并且可能的话需要进行交
  • dell optiplex ubuntu 14.04 安装 NVIDIA 显卡驱动

    公司配置的 dell optiplex使用核显带起双屏幕 xff0c 玩dota2无法特效全开 so xff0c 在京东上买了一块750Ti 安装驱动的时候需要切换到ubuntu的全命令行模式 xff0c 关掉桌面系统才能安装 这时候这个坑
  • golang tcp 2 unix socket proxy

    想将mysql 的TCP 封死 xff0c 所有外部链接由我的proxy来控制 xff0c so 写了一个 tcp 转 unix socket 的 proxy package main import 34 os 34 34 fmt 34 3
  • backup mysql for xtrabackup with xbstream and lz4

    需要临时为mysql添加一个实例 xff0c 使用xtrabackup最简单快速 在现有数据节点上 xff1a home work app xtrabackup 2 2 3 innobackupex ibbackup 61 home wor
  • MySQL分组排序取前N条记录以及生成自动数字序列--group by 后 limit 外加 rownumber

    同事提了一个需求 xff0c 要求按照某列分组 xff0c 然后将各组的前几条抽取出来 表结构 CREATE TABLE 96 total freq ctrl 96 96 time 96 int 10 unsigned NOT NULL 9
  • docker init 起步

    yum install wget http fedora mirror nexicom net epel 6 x86 64 epel release 6 8 noarch rpm yum y install epel release 6 8
  • 设置xrdp使用固定的会话

    修改xrdp ini配置文件 xff0c 位于 etc xrdp xrdp ini 要打开和编辑xrdp的配置文件 xff0c 请使用 xff1a sudo nano etc xrdp xrdp ini 默认情况下 xff0c 第一个xrd
  • 回想当年 91d2 1588 神戒

    渡鳥之箍 全JP属性 xff0c 1588成交
  • mysql 事务 rollback 失效

    最近支付业务发生了一件怪事 xff0c 在一个事务 失败后 xff0c 调用rollback xff0c 发现只rollback 了最后一条sql 开发查了很久 xff0c 发现是网络抖动 xff0c 造成第一次创建链接的 begin 丢掉

随机推荐