当前位置: 首页 > news >正文

MFC开发,给对话框添加定时器

定时器简介

定时器的主要功能是设置以毫秒为单位的定时周期,然后进行连续定时或单次定时。

定时器是用于设置有规律的去触发某种动作所用的,这种场景也是软件中经常可以用到的,比如用户设置规定时间推送提示的功能,又比如程序定期向服务器请求某种数据时,等等功能都需要使用定时器来完成这样的操作。

QT和MFC中都用添加定时器的方法,我们这里先来介绍在MFC中添加定时器的方法

相关函数

使用定时器需要用到SetTimer、OnTimer和KillTimer这三个函数,其中OnTimer函数体需要自己实现和通过消息进行添加,其它两个函数是系统调用

SetTimer() 设置定时器

该函数的功能是创建一个定时器,同时开启这个创建定时器

函数声明如下

UINT_PTR CWnd::SetTimer(UINT_PTR nIDEvent, UINT nElapse, void (CALLBACK* lpfnTimer)(HWND, UINT, UINT_PTR, DWORD));
// nIDEvent  指定定时器的ID,用于处理和销毁定时器所用
// nElapse   定时器每次触发的时间间隔,以毫秒为单位
// lpfnTimer 指定定时器超时时的回调函数,可以为NULL表示不理会定时器超时

OnTimer() 处理定时器

当定时器所设置的定时毫秒数结束时,OnTimer()函数就会收到该定时器的ID,就可以进行定时操作的处理

OnTimer()函数是通过MFC进行添加的,下面介绍一下如何添加OnTimer函数

点击要添加定时器的对话框→点击属性→选择消息→添加WM_TIMER消息

添加完成

其中参数nIDEvent就是创建定时器时所指定的定时器ID

KillTimer() 销毁定时器

该函数的功能是销毁并停止指定定时器的工作

函数声明如下

BOOL CWnd::KillTimer(UINT_PTR nIDEvent);
// nIDEvent 指定要销毁的定时器的ID

代码实现

下面我将提供一段创建并使用定时器的代码,提供给大佬门参考

示例代码

BOOL CMainDlg::OnInitDialog()
{CDialog::OnInitDialog();// 在此添加额外的初始化SetTimer(0, 50, NULL);return TRUE;  // return TRUE unless you set the focus to a control// 异常: OCX 属性页应返回 FALSE
}void CMainDlg::OnTimer(UINT_PTR nIDEvent)
{// TODO: 在此添加消息处理程序代码和/或调用默认值if (nIDEvent == 0) {TRACE("定时器触发\r\n");}CDialog::OnTimer(nIDEvent);
}void CMainDlg::OnClose()
{KillTimer(0);CDialog::OnClose();
}

运行结果

到这里,MFC开发给对话框添加定时器就介绍完了

感谢观看学习,大佬们多多指点,愿明天的自己会感谢当下的努力!!!!

相关文章:

MFC开发,给对话框添加定时器

定时器简介 定时器的主要功能是设置以毫秒为单位的定时周期,然后进行连续定时或单次定时。 定时器是用于设置有规律的去触发某种动作所用的,这种场景也是软件中经常可以用到的,比如用户设置规定时间推送提示的功能,又比如程序定…...

LED灯珠:技术、类型与选择指南

目录 1. LED灯珠的类型 2. LED灯珠技术 3. 如何选择LED灯珠 4. 相关案例和使用情况 5. 结论 LED(Light Emitting Diode)灯珠是一种半导体发光器件,通过电流在固体半导体中流动时,其工作原理是电子与空穴的结合,通过…...

C语言二刷

const #include<stdio.h> int main() {const int amount 100;int price 0;scanf("%d", &price);int change amount - price;printf("找您%d元\n", change);return 0; } 浮点数类型 输入输出float&#xff08;单精度&#xff09;%f%f %l…...

C++模块化程序设计举例

1、模块1 在main.cpp里输入下面的程序&#xff1a; #include "stdio.h" //使能printf()函数 #include <stdlib.h> //使能exit(); #include "Static_Variable.h" //argc 是指命令行输入参数的个数; //argv[]存储了所有的命令行参数; //argv[0]通常…...

毕业设计选题:基于Python的招聘信息爬取和可视化平台

开发语言&#xff1a;Python框架&#xff1a;djangoPython版本&#xff1a;python3.7.7数据库&#xff1a;mysql 5.7数据库工具&#xff1a;Navicat11开发软件&#xff1a;PyCharm 系统展示 采集的数据列表 招聘数据大屏 摘要 本系统通过对网络爬虫的分析&#xff0c;研究智…...

机器人学习仿真框架

机器人学习仿真框架一般包含&#xff08;自底向上&#xff09;&#xff1a; 3D仿真物理引擎&#xff1a;对现实世界的模拟仿真机器人仿真平台&#xff1a;用于搭建工作场景&#xff0c;以实现agent与环境的交互学习学习算法框架集合&#xff1a;不同的策略学习算法的实现算法测…...

力扣每日一题打卡 3180. 执行操作可获得的最大总奖励 I

给你一个整数数组 rewardValues&#xff0c;长度为 n&#xff0c;代表奖励的值。 最初&#xff0c;你的总奖励 x 为 0&#xff0c;所有下标都是 未标记 的。你可以执行以下操作 任意次 &#xff1a; 从区间 [0, n - 1] 中选择一个 未标记 的下标 i。如果 rewardValues[i] 大于…...

NVR录像机汇聚管理EasyNVR多品牌NVR管理工具/设备视频报警功能详解

在科技日新月异的今天&#xff0c;视频监控系统作为现代社会的“第三只眼”&#xff0c;正以前所未有的方式深刻影响着我们的生活与社会结构。从公共场所的安全监控到个人生活的记录分享&#xff0c;视频监控系统以其独特的视角和功能&#xff0c;为社会带来了诸多好处&#xf…...

springboot073车辆管理系统设计与实现(论文+源码)_kaic.zip

车辆管理系统 摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了车辆管理系统的开发全过程。通过分析车辆管理系统管理的不足&#xff0c;创建了一个计算机管理车辆管理系统的方案。文章介绍了车辆管理系统的系统…...

2024.10月22日- MySql的 补充知识点

1、什么是数据库事务&#xff1f; 数据库事务: 是数据库管理系统执行过程中的一个逻辑单位&#xff0c;由一个有限的数据库操作序列构成&#xff0c;这些操作要么全部执行,要么全部不执行&#xff0c;是一个不可分割的工作单位。 2、Mysql事务的四大特性是什么&#xff1f; …...

Java中的对象——生命周期详解

1. 对象的创建 1.1 使用 new 关键字 执行过程&#xff1a;当使用 new 关键字创建对象时&#xff0c;JVM 会为新对象在堆内存中分配一块空间&#xff0c;并调用对应的构造器来初始化对象。 示例代码&#xff1a; MyClass obj new MyClass(); 内存变化&#xff1a;JVM 在堆…...

vue文件报Cannot find module ‘webpack/lib/RuleSet‘错误处理

检查 Node.js 版本&#xff1a;这个问题可能与 Node.js 的版本有关。你可以尝试将 Node.js 的版本切换到 12 或更低。如果没有安装 nvm&#xff08;Node Version Manager&#xff09;&#xff0c;可以通过以下命令安装&#xff1a; curl -o- https://raw.githubusercontent.co…...

第 6 章 机器人系统仿真

对于ROS新手而言&#xff0c;可能会有疑问:学习机器人操作系统&#xff0c;实体机器人是必须的吗&#xff1f;答案是否定的&#xff0c;机器人一般价格不菲&#xff0c;为了降低机器人学习、调试成本&#xff0c;在ROS中提供了系统的机器人仿真实现&#xff0c;通过仿真&#x…...

爬虫——scrapy的基本使用

一&#xff0c;scrapy的概念和流程 1. scrapy的概念 Scrapy是一个Python编写的开源网络爬虫框架。它是一个被设计用于爬取网络数据、提取结构性数据的框架。 框架就是把之前简单的操作抽象成一套系统&#xff0c;这样我们在使用框架的时候&#xff0c;它会自动的帮我们完成很…...

聚类分析算法——K-means聚类 详解

K-means 聚类是一种常用的基于距离的聚类算法&#xff0c;旨在将数据集划分为 个簇。算法的目标是最小化簇内的点到簇中心的距离总和。下面&#xff0c;我们将从 K-means 的底层原理、算法步骤、数学基础、距离度量方法、参数选择、优缺点 和 源代码实现 等角度进行详细解析。…...

【Sublime Text】设置中文 最新最详细

在编程的艺术世界里&#xff0c;代码和灵感需要寻找到最佳的交融点&#xff0c;才能打造出令人为之惊叹的作品。而在这座秋知叶i博客的殿堂里&#xff0c;我们将共同追寻这种完美结合&#xff0c;为未来的世界留下属于我们的独特印记。 【Sublime Text】设置中文 最新最详细 开…...

C++学习路线(二十四)

静态成员函数 类的静态方法: 1.可以直接通过类来访问【更常用】&#xff0c;也可以通过对象(实例)来访问。 2.在类的静态方法中&#xff0c;不能访问普通数据成员和普通成员函数(对象的数据成员和成员函数&#xff09; 1)静态数据成员 可以直接访问“静态数据成员”对象的成…...

MySQL-存储过程/函数/触发器

文章目录 什么是存储过程存储过程的优缺点存储过程的基本使用存储过程的创建存储过程的调用存储过程的删除存储过程的查看delimiter命令 MySQL中的变量系统变量用户变量局部变量参数 if语句case语句while循环repeat循环loop循环游标cursor捕获异常并处理存储函数触发器触发器概…...

前端页面样式没效果?没应用上?

当我们在开发项目时会有很多个页面、相同的标签&#xff0c;也有可能有相同的class值。样式设置的多了&#xff0c;分不清哪个是当前应用的。我们可以使用网页的开发者工具。 在我们开发的网页中按下f12或&#xff1a; 在打开的工具中我们可以使用元素选择器&#xff0c;单击我…...

05.MyISAM主键和二级索引树

...

Windows PDF处理终极指南:Poppler完整工具包快速入门

Windows PDF处理终极指南&#xff1a;Poppler完整工具包快速入门 【免费下载链接】poppler-windows Download Poppler binaries packaged for Windows with dependencies 项目地址: https://gitcode.com/gh_mirrors/po/poppler-windows 还在为Windows平台上的PDF处理工具…...

并发编程进阶:volatile、内存屏障与 CPU 缓存机制详解

知识点回顾 1. 什么是CQRS&#xff1f; CQRS是Command Query Responsibility Segregation的缩写&#xff0c;一般称作命令查询职责分离。从字面意思理解&#xff0c;就是将命令&#xff08;写入&#xff09;和查询&#xff08;读取&#xff09;的责任划分到不同的模型中。 对比…...

Ozon买家纠纷如何高效解决?借CaptainAI轻松化解!

做Ozon跨境电商&#xff0c;卖家最头疼的是买家纠纷&#xff0c;如买家质疑商品与描述不符、物流延迟投诉、退货商品状态分歧等。Ozon平台有纠纷处理时限&#xff0c;买家不满解决方案可在5个日历日内发起纠纷&#xff0c;平台3天审核裁决&#xff0c;卖家准备不足、响应不及时…...

蓝桥杯c++新手如何起步?快马生成带详解的入门代码示例

作为一名刚接触蓝桥杯C竞赛的新手&#xff0c;最头疼的往往不是算法本身&#xff0c;而是连基础语法都还没摸透就要面对复杂题目。最近在准备比赛时&#xff0c;我发现用传统方式学习效率很低——手动敲完代码后&#xff0c;经常因为不熟悉语法细节卡壳&#xff0c;调试半天也找…...

如何高效获取QQ音乐资源?MCQTSS_QQMusic带来的无损音乐解析方案

如何高效获取QQ音乐资源&#xff1f;MCQTSS_QQMusic带来的无损音乐解析方案 【免费下载链接】MCQTSS_QQMusic QQ音乐解析 项目地址: https://gitcode.com/gh_mirrors/mc/MCQTSS_QQMusic MCQTSS_QQMusic是一款专注于QQ音乐资源解析的开源工具&#xff0c;能够帮助用户突破…...

从AudioLDM到商业应用:AI生成冥想音乐的技术全景与实战指南

从AudioLDM到商业应用&#xff1a;AI生成冥想音乐的技术全景与实战指南 引言 在快节奏的现代生活中&#xff0c;冥想作为一种有效的减压方式日益普及&#xff0c;而与之相伴的冥想音乐需求也持续增长。传统的音乐创作模式周期长、成本高&#xff0c;难以满足海量、个性化的需求…...

oletools实战:5步识别恶意宏代码的完整指南

oletools实战&#xff1a;5步识别恶意宏代码的完整指南 【免费下载链接】oletools oletools - python tools to analyze MS OLE2 files (Structured Storage, Compound File Binary Format) and MS Office documents, for malware analysis, forensics and debugging. 项目地…...

3分钟部署RevokeMsgPatcher:Windows平台微信QQ消息防撤回终极指南

3分钟部署RevokeMsgPatcher&#xff1a;Windows平台微信QQ消息防撤回终极指南 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁&#xff08;我已经看到了&#xff0c;撤回也没用了&#xff09; 项目地址: https:/…...

告别繁琐操作:一键下载电子课本的智能解决方案

告别繁琐操作&#xff1a;一键下载电子课本的智能解决方案 【免费下载链接】tchMaterial-parser 国家中小学智慧教育平台 电子课本下载工具 项目地址: https://gitcode.com/GitHub_Trending/tc/tchMaterial-parser 还在为获取教学资源而四处奔波吗&#xff1f;还在面对复…...

告别VS Code后,我在Trae里这样调教Dracula主题和代码片段(附同步指南)

从VS Code到Trae&#xff1a;打造极致Dracula主题与高效代码片段的完整指南 第一次在Trae里看到默认的白色主题时&#xff0c;我的眼睛几乎被闪瞎——这感觉就像半夜突然被强光手电筒直射瞳孔。作为从VS Code"叛逃"过来的开发者&#xff0c;我花了整整两周时间把Trae…...