`
strong_fee
  • 浏览: 178458 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

MFC SetTimer函数的用法

阅读更多

    SetTimer函数的用法
1
  函数原型及变形

SetTimer这个API函数的原型
UINT_PTR SetTimer(
HWND hWnd, //
窗口句柄
UINT_PTR nIDEvent, //
定时器ID,多个定时器时,可以通过该ID判断是哪个定时器
UINT uElapse, //
时间间隔,单位为毫秒
TIMERPROC lpTimerFunc //
回调函数
);

注意:设置第二个参数时要注意,如果设置的等待时间比处理时间短,程序就会出问题了。
回调函数:在这个函数里,放入你想要做的事情的代码,你可以将它设定为NULL 也就是使用系统默认的回调函数,系统默认认的是onTime函数。
例如
SetTimer(m_hWnd,1,1000,NULL); //
一个1秒触发一次的定时器
MFC程序中SetTimer被封装在CWnd类中,调用就不用指定窗口句柄了

于是SetTimer函数的原型变为:
UINT SetTimer(UINT nIDEvent,UINT nElapse,void(CALLBACK EXPORT *lpfnTimer)(HWND,UINT ,YINT ,DWORD))
,用法如:SetTimer(1,1000,NULL);

2
)函数生成方法

ClassWizard里,选择需要计时器的类,添加WM_TIME消息映射,就自动生成onTime函数了。然后在函数里添加代码,让代码实现功能。
每隔一段时间就会自动执行一次。

3 回调函数的格式
void CALLBACK TimerProc(HWND hWnd,UINT nMsg,UINT nTimerid,DWORD dwTime);

. 多个Timer
ID的值设为〉1的数,如:SetTimer(3,500,NULL);
WINDOWS会协调他们的然onTimer函数要在函数体内添加每一个timer的处理代码:
onTimer(nIDEvent)

{
switch(nIDEvent)

{
case 1:........;
break;
case 2:.......;
break;
case 3:......;
break;
}

三、KillTimer:取消定时器不再使用定时器后,我们应该调用KillTimer来取消定时。

       KillTimer的原型:

              BOOL KillTimer(HWND hWnd,          // 窗口句柄

                     UINT_PTR uIDEvent   // ID);

       MFC程序中我们可以直接调用KillTimer(int nIDEvent)来取消定时器。

分享到:
评论

相关推荐

    mfc精确控制时间 ms级别

    Windows API中的`SetTimer`函数可以设置一个定时器,但它的精度通常受限于系统刷新率,可能无法达到毫秒级别。对于更高精度的需求,我们需要使用`QueryPerformanceCounter`和`QueryPerformanceFrequency`这两个API...

    MFC中OnCreate、Settimer、OnTimer、KillTimer的使用例子

    这一份代码是实现MFC的窗口创建完成需要立刻对某些控件进行响应,以及如何使用SetTimer和KillTimer的例子。 因为在MFC的初始化函数中,窗口创建还没有完成不能对窗口上的控件进行初始化操作,这是需要调用OnCreate...

    MFC定时器的用法

    然后,我们可以使用CWinApp或CWnd类的成员函数SetTimer来启动定时器,例如: ```cpp // 在CWinApp派生类的成员函数中 m_hTimer = SetTimer(1, 1000, NULL); // 定义定时器ID为1,间隔1000毫秒 // 或者,在CWnd派生...

    mfc 定时器简单用法小例子

    本示例“mfc 定时器简单用法小例子”将帮助我们理解如何在MFC应用中集成和使用定时器。在MFC中,定时器主要通过`Ctimer`类来实现,配合`OnTimer`消息处理函数。 1. **Ctimer类**:`CTimer`并不是MFC的标准类,而是...

    mfc计数器的使用方法(秒表)

    使用`SetTimer`函数设置时间间隔(例如1000毫秒,即1秒)和回调函数,如`OnTimer`。 ```cpp m_Timer.Create(NULL, ID_TIMER, this); // 创建计时器对象,指定父窗口为当前对话框 SetTimer(ID_TIMER, 1000, NULL); /...

    MFC中使用OpenCV捕捉摄像头视频并在Image控件中播放

    8. 使用 SetTimer 函数来设置定时器 9. 使用 OnTimer 函数来处理定时器事件 10. 在 MFC 中使用 OpenCV 库来处理图像 总结来说,该资源为开发者提供了一个完整的解决方案,指导他们如何使用 OpenCV 库在 MFC 中捕捉...

    MFC实现时钟 MFC实现时钟

    我们可以利用CWnd类的成员函数SetTimer设置定时器,每隔一定时间(比如1秒)触发一个消息,这样我们就可以在每次触发时更新时钟的显示。 更新时钟显示的方法通常是重载OnTimer消息处理函数。当定时器事件发生时,这...

    在MFC状态栏显示时间

    在 MainFrm.cpp 中的OnCreate 函数中添加代码,使用SetTimer 函数安装定时器,并将其时间间隔设为1000毫秒。 第四,编写时间处理函数。在 ClassWizard 中为 CMainFrame 类加入 WM_TIMER 的消息处理函数 OnTimer,并...

    MFC定时器截屏显示

    1. **创建定时器**:首先,我们需要在MFC应用程序中设置一个定时器,通过调用CWinApp或CWnd的SetTimer函数,指定定时器ID、间隔时间和回调函数。例如,可能在 OnInitDialog 或 OnCreate 方法中设置定时器。 ```cpp ...

    C++(MFC)定时器使用

    本文将深入探讨MFC中的定时器(Timer)功能及其使用方法,这对于理解如何在C++环境中实现定时任务至关重要。定时器在各种应用中都有广泛的应用,如自动更新、间隔触发事件或者动画效果等。 首先,我们需要了解MFC中...

    MFC中添加ontimer的方法

    在MFC(Microsoft Foundation Classes)框架中,`OnTimer`函数是用于处理定时器事件的关键方法。当你希望在应用程序中实现周期性的任务,比如每隔一段时间更新界面或执行某项操作,`OnTimer`就会派上用场。由于你刚...

    MFC开发案例--闹钟程序

    为了实现定时功能,我们可以使用Windows的SetTimer函数。在CWinApp或CFrameWnd的成员函数中,根据用户设定的闹钟时间,设置一个定时器。定时器到期后,会触发消息WM_TIMER,我们可以通过重写OnTimer函数来响应这个...

    回调函数及MessageBox自动关闭示例

    其中`CMyThreadClass`是继承自`CWinThread`的自定义线程类,我们需要在该类中覆盖`Run`方法来执行线程逻辑,并在适当的时候调用回调函数。 为了实现`MessageBox`自动关闭的功能,我们可以在回调函数中设置一个...

    MFC数字时钟.zip_MFC时钟_MFC算例_mfc数字时钟_tube365_时钟MFC

    6. 定时器(Ctimer):为了实时更新时钟,程序需要设置定时器,如SetTimer函数,每隔一定时间间隔(比如1秒)触发一个事件,然后更新界面显示的时间。 7. GUI更新:当定时器触发事件后,你需要捕获这个事件并在...

    mfc 电子时钟(有表针的)

    在MFC中,可以使用CWinApp的SetTimer函数设置定时器,该定时器会在指定间隔后发送一条WM_TIMER消息。在OnTimer处理函数中,可以响应这个消息,进行相应的操作,例如更新时间显示。 8. **图形绘制**: MFC提供了...

    MFC定时器的使用PPT

    使用WM_TIMER消息,需要通过SetTimer函数启动定时器,设置ID和间隔时间,然后在消息循环中处理WM_TIMER消息。例如,使用SetTimer(1, 200, NULL)可以启动一个200毫秒间隔的定时器,消息响应函数默认为OnTimer()。当...

    mfc实现绘制实时动态曲线

    在MFC中,可以使用CWinApp或CWnd的SetTimer函数来设置定时器,同时需要处理WM_TIMER消息。 在`OnDraw`函数中,我们需要先清除画布,一般使用CDC类的FillSolidRect方法填充背景色。然后,使用CDC的MoveTo和LineTo...

    MFC小闹钟 闹钟 MFC时钟 时间 Timer

    5. **Windows定时器**:通过SetTimer函数设置,周期性触发WM_TIMER消息,用于实现应用的定时功能。 6. **MSI安装包**:使用Microsoft Installer技术打包的应用程序安装程序,可以方便用户在目标计算机上安装程序。 ...

    MFC界面更新实现方法

    ### MFC界面更新实现方法详解 #### 一、更新窗口 - 使用 `UpdateWindow()` 函数 在Microsoft Foundation Classes (MFC) 中,`UpdateWindow()` 是一个常用的函数,用于更新整个窗口,它会立即发送 `WM_PAINT` 消息...

    MFC仪表编程

    要创建一个定时器,我们通常会使用CWinApp::SetTimer函数,设置定时器ID、间隔时间和回调函数。 接着,我们来讨论双缓冲技术。在图形绘制中,未使用双缓冲时,每次绘图操作都会立即反映到屏幕上,这可能导致屏幕...

Global site tag (gtag.js) - Google Analytics