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(单精度)%f%f %l…...
C++模块化程序设计举例
1、模块1 在main.cpp里输入下面的程序: #include "stdio.h" //使能printf()函数 #include <stdlib.h> //使能exit(); #include "Static_Variable.h" //argc 是指命令行输入参数的个数; //argv[]存储了所有的命令行参数; //argv[0]通常…...
毕业设计选题:基于Python的招聘信息爬取和可视化平台
开发语言:Python框架:djangoPython版本:python3.7.7数据库:mysql 5.7数据库工具:Navicat11开发软件:PyCharm 系统展示 采集的数据列表 招聘数据大屏 摘要 本系统通过对网络爬虫的分析,研究智…...
机器人学习仿真框架
机器人学习仿真框架一般包含(自底向上): 3D仿真物理引擎:对现实世界的模拟仿真机器人仿真平台:用于搭建工作场景,以实现agent与环境的交互学习学习算法框架集合:不同的策略学习算法的实现算法测…...
力扣每日一题打卡 3180. 执行操作可获得的最大总奖励 I
给你一个整数数组 rewardValues,长度为 n,代表奖励的值。 最初,你的总奖励 x 为 0,所有下标都是 未标记 的。你可以执行以下操作 任意次 : 从区间 [0, n - 1] 中选择一个 未标记 的下标 i。如果 rewardValues[i] 大于…...
NVR录像机汇聚管理EasyNVR多品牌NVR管理工具/设备视频报警功能详解
在科技日新月异的今天,视频监控系统作为现代社会的“第三只眼”,正以前所未有的方式深刻影响着我们的生活与社会结构。从公共场所的安全监控到个人生活的记录分享,视频监控系统以其独特的视角和功能,为社会带来了诸多好处…...
springboot073车辆管理系统设计与实现(论文+源码)_kaic.zip
车辆管理系统 摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了车辆管理系统的开发全过程。通过分析车辆管理系统管理的不足,创建了一个计算机管理车辆管理系统的方案。文章介绍了车辆管理系统的系统…...
2024.10月22日- MySql的 补充知识点
1、什么是数据库事务? 数据库事务: 是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。 2、Mysql事务的四大特性是什么? …...
Java中的对象——生命周期详解
1. 对象的创建 1.1 使用 new 关键字 执行过程:当使用 new 关键字创建对象时,JVM 会为新对象在堆内存中分配一块空间,并调用对应的构造器来初始化对象。 示例代码: MyClass obj new MyClass(); 内存变化:JVM 在堆…...
vue文件报Cannot find module ‘webpack/lib/RuleSet‘错误处理
检查 Node.js 版本:这个问题可能与 Node.js 的版本有关。你可以尝试将 Node.js 的版本切换到 12 或更低。如果没有安装 nvm(Node Version Manager),可以通过以下命令安装: curl -o- https://raw.githubusercontent.co…...
第 6 章 机器人系统仿真
对于ROS新手而言,可能会有疑问:学习机器人操作系统,实体机器人是必须的吗?答案是否定的,机器人一般价格不菲,为了降低机器人学习、调试成本,在ROS中提供了系统的机器人仿真实现,通过仿真&#x…...
爬虫——scrapy的基本使用
一,scrapy的概念和流程 1. scrapy的概念 Scrapy是一个Python编写的开源网络爬虫框架。它是一个被设计用于爬取网络数据、提取结构性数据的框架。 框架就是把之前简单的操作抽象成一套系统,这样我们在使用框架的时候,它会自动的帮我们完成很…...
聚类分析算法——K-means聚类 详解
K-means 聚类是一种常用的基于距离的聚类算法,旨在将数据集划分为 个簇。算法的目标是最小化簇内的点到簇中心的距离总和。下面,我们将从 K-means 的底层原理、算法步骤、数学基础、距离度量方法、参数选择、优缺点 和 源代码实现 等角度进行详细解析。…...
【Sublime Text】设置中文 最新最详细
在编程的艺术世界里,代码和灵感需要寻找到最佳的交融点,才能打造出令人为之惊叹的作品。而在这座秋知叶i博客的殿堂里,我们将共同追寻这种完美结合,为未来的世界留下属于我们的独特印记。 【Sublime Text】设置中文 最新最详细 开…...
C++学习路线(二十四)
静态成员函数 类的静态方法: 1.可以直接通过类来访问【更常用】,也可以通过对象(实例)来访问。 2.在类的静态方法中,不能访问普通数据成员和普通成员函数(对象的数据成员和成员函数) 1)静态数据成员 可以直接访问“静态数据成员”对象的成…...
MySQL-存储过程/函数/触发器
文章目录 什么是存储过程存储过程的优缺点存储过程的基本使用存储过程的创建存储过程的调用存储过程的删除存储过程的查看delimiter命令 MySQL中的变量系统变量用户变量局部变量参数 if语句case语句while循环repeat循环loop循环游标cursor捕获异常并处理存储函数触发器触发器概…...
前端页面样式没效果?没应用上?
当我们在开发项目时会有很多个页面、相同的标签,也有可能有相同的class值。样式设置的多了,分不清哪个是当前应用的。我们可以使用网页的开发者工具。 在我们开发的网页中按下f12或: 在打开的工具中我们可以使用元素选择器,单击我…...
Mac apache配置cgi环境-修改httpd.conf文件、启动apache
Mac自带Apache,配置CGI,分以下几步: 找到httpd.conf。打开终端,编辑以下几处,去掉#或补充内容。在这个路径下写一个测试文件.py格式的,/Library/WebServer/CGI-Executables,注意第一行的python…...
多厂商的实现不同vlan间通信
Cisco单臂路由 Cisco路由器配置 -交换机配置 -pc配置 华三的单臂路由 -路由器配置 -华三的接口默认是打开的 -pc配置及ping的结果 -注意不要忘记配置默认网关 Cisco-SVI -交换机的配置 -创建vlan -> 设置物理接口对应的Acess或Trunk -> 进入vlan接口,打开接…...
sh与bash的区别
sh与bash的区别 结论:对于一般开发者,没有区别;对于要使脚本兼容较老系统,或者兼容其他shell(如ksh,dash),那么意义可能很重大,要确保自己代码没有bash扩展的特性。 区…...
D48【python 接口自动化学习】- python基础之类
day48 练习:开发自动咖啡(上) 学习日期:20241025 学习目标:类 -- 62 小试牛刀:如何开发自动咖啡机?(上) 学习笔记: 案例解析 定义类 定义属性和方法 clas…...
PostgreSQL(WINDOWS)下载、安装、简单使用
下载 PostgreSQL: Downloads PostgreSQL: Windows installers EDB: Open-Source, Enterprise Postgres Database Management 安装 注意密码要方便自己使用,不能忘记。 打开pgAdmin,输入密码 新建数据库 打开命令工具 新建表...
Git的初次使用
一、下载git 找淘宝的镜像去下载比较快 点击这里 二、配置git 1.打开git命令框 2.设置配置 git config --global user.name "你的用名"git config --global user.email "你的邮箱qq.com" 3.制作本地仓库 新建一个文件夹即可,然后在文件夹…...
rocketmq服务的docker启动和配置
rocketmq的默认启动参数占用的内存实在是太大了,小于8G的电脑无法启动,docker中的开发环境又不可能用这么大,通用的该法是改sh文件 修改文件如下 runbroker.sh 默认8G JAVA_OPT"${JAVA_OPT} -server -Xms${Xms} -Xmx${Xmx} -Xmn${Xmn…...
BLE和经典蓝牙相比,有什么优缺点
蓝牙低功耗(Bluetooth Low Energy,简称 BLE)和经典蓝牙(Bluetooth Classic,即 BR/EDR,Basic Rate/Enhanced Data Rate)是蓝牙技术的两种主要模式。两者都有各自的优缺点,具体如下&am…...
ECharts图表图例知识点小结
ECharts 图表图例简述 一、知识点 1. 作用: - 用于标识图表中的不同系列,帮助用户理解图表所展示的数据内容。 2. 位置: - 可以通过配置项设置图例的位置,如 top 、 bottom 、 left 、 right 等。 3. 显示状态控制:…...
LabVIEW非接触式模态参数识别系统开发
基于LabVIEW的模态参数识别系统采用非接触式声学方法,结合LabVIEW软件和高精度硬件,实现机械结构模态参数的快速准确识别。降低了模态分析技术门槛,提高测试效率和准确性。 项目背景与意义: 传统的模态分析方法,如锤击法&#x…...
b2b平台免费推广/seo培训师
01PDF下载识别下方二维码,回复“苏宁”,即可下载。02PPT预览...
怎么做自己的个人网站/从哪里找网络推广公司
以下内容全部来自 Transforms Ⅰ. Transforms 简而言之,就是训练的数据有时候并不是机器学习训练的数据格式,这个时候就需要 Transforms 对数据进行一些操作(转换),使其适合做神经网络的输入。比如对于图像数据&…...
潍坊网站制作发/成都网站建设系统
这样的功能主要用在两表分别在不同的数据库上,在数据库层面不同步数据关联不了的情况。且目前,被关联的表公仅支持是key/value两列数据的情况。 1、数据准备 -- 主表 select * from x_student_scores insert into x_student_scores select 1,语文,1,98…...
Javaweb网站建设/百度广告联盟
管理节点 docker swarm leave --force普通节点 docker swarm leave欢迎小伙伴讨论,如有错误请在评论区评论或发私聊消息,谢谢你。...
微网站什么意思/网站关键词排名外包
Vector 类实现了一个动态数组。和 ArrayList 很相似,但是两者是不同的: Vector 是同步访问的。 Vector 包含了许多传统的方法,这些方法不属于集合框架。 Vector 主要用在事先不知道数组的大小,或者只是需要一个可以改变大小的数组…...
网站建设注意事情/电商平台运营
1.团队课程设计博客链接 https://www.cnblogs.com/hq9-/p/10278470.html 2.个人任务 1)权重功能实现 public static void accuAccordPercent(String tablename, String cname, Map<String, Double> per) {Connection conn null;PreparedStatement ps null;P…...