一 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)来取消定时器。
分享到:
相关推荐
Windows API中的`SetTimer`函数可以设置一个定时器,但它的精度通常受限于系统刷新率,可能无法达到毫秒级别。对于更高精度的需求,我们需要使用`QueryPerformanceCounter`和`QueryPerformanceFrequency`这两个API...
这一份代码是实现MFC的窗口创建完成需要立刻对某些控件进行响应,以及如何使用SetTimer和KillTimer的例子。 因为在MFC的初始化函数中,窗口创建还没有完成不能对窗口上的控件进行初始化操作,这是需要调用OnCreate...
然后,我们可以使用CWinApp或CWnd类的成员函数SetTimer来启动定时器,例如: ```cpp // 在CWinApp派生类的成员函数中 m_hTimer = SetTimer(1, 1000, NULL); // 定义定时器ID为1,间隔1000毫秒 // 或者,在CWnd派生...
本示例“mfc 定时器简单用法小例子”将帮助我们理解如何在MFC应用中集成和使用定时器。在MFC中,定时器主要通过`Ctimer`类来实现,配合`OnTimer`消息处理函数。 1. **Ctimer类**:`CTimer`并不是MFC的标准类,而是...
使用`SetTimer`函数设置时间间隔(例如1000毫秒,即1秒)和回调函数,如`OnTimer`。 ```cpp m_Timer.Create(NULL, ID_TIMER, this); // 创建计时器对象,指定父窗口为当前对话框 SetTimer(ID_TIMER, 1000, NULL); /...
8. 使用 SetTimer 函数来设置定时器 9. 使用 OnTimer 函数来处理定时器事件 10. 在 MFC 中使用 OpenCV 库来处理图像 总结来说,该资源为开发者提供了一个完整的解决方案,指导他们如何使用 OpenCV 库在 MFC 中捕捉...
我们可以利用CWnd类的成员函数SetTimer设置定时器,每隔一定时间(比如1秒)触发一个消息,这样我们就可以在每次触发时更新时钟的显示。 更新时钟显示的方法通常是重载OnTimer消息处理函数。当定时器事件发生时,这...
在 MainFrm.cpp 中的OnCreate 函数中添加代码,使用SetTimer 函数安装定时器,并将其时间间隔设为1000毫秒。 第四,编写时间处理函数。在 ClassWizard 中为 CMainFrame 类加入 WM_TIMER 的消息处理函数 OnTimer,并...
1. **创建定时器**:首先,我们需要在MFC应用程序中设置一个定时器,通过调用CWinApp或CWnd的SetTimer函数,指定定时器ID、间隔时间和回调函数。例如,可能在 OnInitDialog 或 OnCreate 方法中设置定时器。 ```cpp ...
本文将深入探讨MFC中的定时器(Timer)功能及其使用方法,这对于理解如何在C++环境中实现定时任务至关重要。定时器在各种应用中都有广泛的应用,如自动更新、间隔触发事件或者动画效果等。 首先,我们需要了解MFC中...
在MFC(Microsoft Foundation Classes)框架中,`OnTimer`函数是用于处理定时器事件的关键方法。当你希望在应用程序中实现周期性的任务,比如每隔一段时间更新界面或执行某项操作,`OnTimer`就会派上用场。由于你刚...
为了实现定时功能,我们可以使用Windows的SetTimer函数。在CWinApp或CFrameWnd的成员函数中,根据用户设定的闹钟时间,设置一个定时器。定时器到期后,会触发消息WM_TIMER,我们可以通过重写OnTimer函数来响应这个...
其中`CMyThreadClass`是继承自`CWinThread`的自定义线程类,我们需要在该类中覆盖`Run`方法来执行线程逻辑,并在适当的时候调用回调函数。 为了实现`MessageBox`自动关闭的功能,我们可以在回调函数中设置一个...
6. 定时器(Ctimer):为了实时更新时钟,程序需要设置定时器,如SetTimer函数,每隔一定时间间隔(比如1秒)触发一个事件,然后更新界面显示的时间。 7. GUI更新:当定时器触发事件后,你需要捕获这个事件并在...
在MFC中,可以使用CWinApp的SetTimer函数设置定时器,该定时器会在指定间隔后发送一条WM_TIMER消息。在OnTimer处理函数中,可以响应这个消息,进行相应的操作,例如更新时间显示。 8. **图形绘制**: MFC提供了...
使用WM_TIMER消息,需要通过SetTimer函数启动定时器,设置ID和间隔时间,然后在消息循环中处理WM_TIMER消息。例如,使用SetTimer(1, 200, NULL)可以启动一个200毫秒间隔的定时器,消息响应函数默认为OnTimer()。当...
在MFC中,可以使用CWinApp或CWnd的SetTimer函数来设置定时器,同时需要处理WM_TIMER消息。 在`OnDraw`函数中,我们需要先清除画布,一般使用CDC类的FillSolidRect方法填充背景色。然后,使用CDC的MoveTo和LineTo...
5. **Windows定时器**:通过SetTimer函数设置,周期性触发WM_TIMER消息,用于实现应用的定时功能。 6. **MSI安装包**:使用Microsoft Installer技术打包的应用程序安装程序,可以方便用户在目标计算机上安装程序。 ...
### MFC界面更新实现方法详解 #### 一、更新窗口 - 使用 `UpdateWindow()` 函数 在Microsoft Foundation Classes (MFC) 中,`UpdateWindow()` 是一个常用的函数,用于更新整个窗口,它会立即发送 `WM_PAINT` 消息...
要创建一个定时器,我们通常会使用CWinApp::SetTimer函数,设置定时器ID、间隔时间和回调函数。 接着,我们来讨论双缓冲技术。在图形绘制中,未使用双缓冲时,每次绘图操作都会立即反映到屏幕上,这可能导致屏幕...