MFC中定时器的使用

MFC中定时器的使用

在MFC中使用定时器时,主要使用如下三个函数SetTimer、OnTimer、KillTimer。这三个函数其实封装了Windows API定时器函数。

定时器的主要用途是按程序设定的时间间隔,间歇性的产生WM_TIMER消息。

SetTimer:启动定时器OnTimer:定时器响应函数KillTimer:结束定时器

定时器使用案例

描述:写一个计数器程序,每个500ms数值增加1。通过启动按钮启动定时器,通过停止按钮停止定时器。

步骤1:创建对话框窗口

新建一个对话框程序。在程序中创建一个静态文本框和一个按钮。程序外观如下所示:

步骤2:启动定时器

启动定时器。启动定时器在按钮响应函数中进行。

void CMFCApplication6Dlg::OnBnClickedButton1()

{

// TODO: 在此添加控件通知处理程序代码

SetTimer(1, 500, NULL);

//1:定时器ID

//500:发送WM_TIMER的时间间隔,以ms为单位,最小的时间间隔是10ms.

//NULL:回调函数设置为NULL

}

步骤3:重写定时器响应函数

在主对话框类中重写定时器响应函数。该函数是WM_TIMER的响应函数。想在哪个类中启动定时器,就要在哪个类中添加OnTimer函数。

void CMFCApplication6Dlg::OnTimer(UINT_PTR nIDEvent)

{

// TODO: 在此添加消息处理程序代码和/或调用默认值

int static num = 0;

CString str;

str.Format(_T("%d"), num);

SetDlgItemText(IDC_STC_SHOW, str);

++num;

CDialogEx::OnTimer(nIDEvent);

}

步骤4:停止定时器

在“停止计数”中添加响应函数。

void CMFCApplication6Dlg::OnBnClickedButton2()

{

// TODO: 在此添加控件通知处理程序代码

KillTimer(1);

}

相关推荐