核心函数:
1. 设置定时器:
UINT_PTR SetTimer(UINT_PTR nIDEvent, UINT nElapse,
void (CALLBACK* lpfnTimer)(HWND, UINT, UINT_PTR, DWORD));
参数说明:
nIDEvent: 用户自定义ID,如: #define ID_EVENT 1
nElapse : 超时时间,单位ms
LpfnTimer: 超时回调函数, 若设置为NULL,则自动响应OnTimer()
2.关闭定时器:
BOOL KillTimer(UINT_PTR nIDEvent);
参数说明:
NIDEvent: 要删除的定时器ID
实例操作:
环境说明: VS2010,VC++,MFC 应用程序。
1.打开类视图,鼠标点击要添加定时器的类(这里用的是multThreadDlg),然后打开属性,在消息下拉中选择WM_TIMER,点击添加。添加成功之后就会在multThreadDlg.cpp文件中产生void CmultThreadDlg::OnTimer(UINT_PTR nIDEvent)。
2.添加代码
#define TIMER_PRINT 1
#define PRINT_INTERVAL 2000 //1s
SetTimer(TIMER_PRINT,PRINT_INTERVAL,NULL);
// 超时处理
void CmultThreadDlg::OnTimer(UINT_PTR nIDEvent)
{
switch(nIDEvent){
case TIMER_PRINT:
if (!mprintFlag)
{
mprintFlag = TRUE;
}
break;
}
CDialogEx::OnTimer(nIDEvent);
}