MFC/C++学习系列之简单记录10——定时器

打印 上一主题 下一主题

主题 968|帖子 968|积分 2904

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x

前言

本日学习一下MFC的定时器的使用!

Time定时器

定时器的作用是答应开辟者在应用程序中创建定时器,以便在指定的时间隔断后实行特定的任务。


  • 定时器ID:也就是界说多个定时器时,用于区别定时器标识的号码。
  • 时间隔断:每个时间隔断意味着多久实行一次定时器的相关操纵。
  • 定时器事件:当肯定的时间隔断到达了,就要实行对应的处置处罚事件。
具体使用步骤



  • 创建定时器:SetTimer
  • 处置处罚定时器事件:OnTimer
  • 销毁定时器:KillTimer
.h文件

  1. UINT_PTR m_nTimerID; // 定时器ID
  2. virtual void OnTimer(UINT_PTR nIDEvent);
复制代码


  • 声明定时器ID:
    UINT_PTR m_nTimerID; 是一个成员变量,用于存储定时器的ID。这个ID是创建定时器时由SetTimer函数返回的,用于唯一标识一个定时器。UINT_PTR类型可以确保这个ID在32位和64位体系上都能精确存储。
  • 处置处罚定时器消息
    virtual void OnTimer(UINT_PTR nIDEvent); 是一个虚函数,用于处置处罚定时器事件。当定时器时间到达时,Windows会向拥有该定时器的窗口发送WM_TIMER消息,MFC框架会自动调用这个函数。
.cpp文件

  1. //#ifdef AFX_DESIGN_TIME中
  2. // 声明定时器ID
  3. enum { ID_TIMER = 1 };
  4. //消息映射表中的宏添加
  5. ON_WM_TIMER()
  6. // CMFCApplication1Dlg 消息处理程序
  7. //BOOL CMFCApplication1Dlg::OnInitDialog()
  8. // TODO: 在此添加额外的初始化代码
  9.         m_nTimerID = SetTimer(ID_TIMER, 10000, NULL);
  10. //事件处理
  11. void CMFCApplication1Dlg::OnTimer(UINT_PTR nIDEvent)
复制代码


  • 声明定时器:当界说多个定时器时,可以通过差别定名和界说来区分。
  • 宏添加:将 WM_TIMER 消息映射到处置处罚该消息的成员函数上。将Windows消息和MFC中的处置处罚函数关联起来。
  • 定时器初始化使用:设置对应的定时器隔断多久去调用一次事件。
  • 事件处置处罚:这里当时间到了,就会实行对应的数据。
  1. CString strM("1");
  2. SetDlgItemText(IDC_STATIC, strM);
复制代码
这里就是简单的设置了一个字符变量,然后放置在控件中不断刷新显示。
错误和办理

运行报错:0x7A58F619 (mfc140ud.dll) (MFCApplication1.exe 中)处有未经处置处罚的异常: 0xC00000FD: Stack overflow (参数: 0x00000001, 0x000E2F50)。
设置堆的大小。
项目标属性——》配置属性——》链接器——》体系——》堆栈保留大小和堆栈提交大小——》100000000

总结

以上就是本日要讲的内容,本文仅仅简单先容了Time定时器的使用以及碰到题目标办理办法!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

梦见你的名字

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表