计时器没有你想的那么麻烦,只要了解计时器是什么,它的三个参数是什么就好了。推荐博客园的这些文章:
利用MFC写一个计时器小程序(DelmoreZhu)
MFC常用类:定时器Timer(鸡啄米)
SetTimer简介
MFC没有自带的时钟,时钟长什么样需要你自己设置,计时器是说每隔多少时间执行一次自定义操作。但是MFC自带了两个函数,SetTimer和KillTimer。不需要另加头文件,直接用。
SetTimer(1, 1000, NULL);
计时器不是控件,所以没有那些一般的设置,在类向导看不到ID,它的ID是你自己设置的,就是它的第一个参数,可以设数字,可以是一般的ID名,像ID_TIMER1。
第二个参数是间隔时间。单位为毫秒,1s=1000ms。第二个参数是说,每隔这么多时间执行一次第三个参数的函数。
对,第三个参数是函数操作,如果是NULL,就是OnTimer函数,可以在类向导选,也可以自己在对话框类里加。
OnTimer函数
void CSudoku2Dlg::OnTimer(UINT_PTR nIDEvent);
类向导里选择“消息” -> WM_TIMER ->“添加处理程序” -> “编辑代码”,就会有这个函数。
示例
下面举例的设置为:编辑框显示用时,单位为秒,带勾选框和暂停键。暂停按钮的文本可以在“暂停”和“继续”间切换。在点击“新游戏”后就已开始计时,勾选框只决定显示或不显示,不显示时为0。在SetTimer后不KillTimer我也不知道会怎样,你可以看看其他人的博客里说的把KillTimer放到OnDestroy里。
// 勾选框
void CSudoku2Dlg::OnBnClickedCheck1()
{
// TODO: 在此添加控件通知处理程序代码
if (BST_CHECKED == IsDlgButtonChecked(IDC_CHECK1)) //你要知道勾选框是动作 不是状态
{
// 勾选
CString cstr("显示计时");
MessageBox(cstr);