[Visual Studio C++] [MFC] 普通定时器讲解

一.前言        

        定时器是我们在工程中使用较多的一个工具,这里提供一个入门的普通定时器,一共需要三个函数:

  • SetTimer()
  • KillTimer()
  • OnTimer()

      下面少讲理论知识,直接在应用中学习,做到快速上手。

二.讲解

     1.函数的功能

  • SetTimer()函数 

     设置一个定时器。
     
  • OnTimer()函数

    系统默认的回调函数。
     
  • KillTimer()函数          

    关闭定时器。

     2.函数使用     

         SetTimer()函数

     ①原型:

//UINT_PTR SetTimer( hWnd , nIDEvent, uElapse, lpTimerFunc);

UINT_PTR SetTimer(
  HWND hWnd,              // 窗口句柄
  UINT_PTR nIDEvent,      // 定时器ID
  UINT uElapse,           // 时间间隔
  TIMERPROC lpTimerFunc   // 回调函数
);

     ②参数:

  1. hWnd     窗口句柄。
     
  2. nIDEvent    定时器ID,多个定时器时,可以通过该ID判断是哪个定时器,也就是这个定时器的名字。
     
  3. uElapse   时间间隔,单位为毫秒。

  4. lpTimerFunc  回调函数,如果设置为 NULL ,则系统自动调用onTimer()函数。  

     ③.说

               在MFC程序中SetTimer被封装在CWnd类中,调用就不用指定窗口句柄了。

      ④.实例

SetTimer(1,1000,NULL);
  •    1:            计时器的名称;
  •    1000:   时间间隔,单位是毫秒;
  •    NULL:    使用onTime()函数。

     

         OnTimer()函数

     ①原型:

OnTimer(nIDEvent)

     ②参数:

  1. nIDEvent    定时器ID,也就是这个定时器的名字。

     ③.添加步骤:

               1)在类视图中选中你想要操作的类,截图如下:

                                                        

                2)在 ‘ 属性 ’ 窗口中点击 ‘ 消息栏 ’,找到 ‘ WM_TIMER ’  后,点击后面‘ 箭头指向下的按钮 ’,选择ADD OnTimer,则系统会自动在对应类的“ .h ”文件中添加OnTimer()的声明,在对应类的“ .cpp ”中添加OnTimer()函数的实现,你只需要在实现中添加你想要的内容就可以了。截图如下:

                                                        

      ④.实例

void CMainControl::OnTimer(UINT_PTR nIDEvent)
{
	// TODO: 在此添加消息处理程序代码和/或调用默认值
	switch(nIDEvent)
	{
	case 1:
		{
			CString temp;
			temp.Format(_T("%.6lf"),FalconData.FalconPos[0]);      //操纵杆X
			GetDlgItem(IDC_XFALCON)->SetWindowText(temp);

			temp.Format(_T("%.6lf"),testBP2);//FalconData.FalconPos[1]);     //操纵杆Y
			GetDlgItem(IDC_YFALCON)->SetWindowText(temp);

			temp.Format(_T("%.6lf"),testBP1);//;FalconData.FalconPos[2]);  //操纵杆Z
			GetDlgItem(IDC_ZFALCON)->SetWindowText(temp);
			break;
		}
	}

	CFormView::OnTimer(nIDEvent);
}

       注:多个定时器的时候可以通过switch来实现选择。

          KillTimer()函数

     ①原型:

KillTimer(nIDEvent)

     ②参数:

  1. nIDEvent    定时器ID,就是这个定时器的名字。

     ③.说

               当不需要计时器的时候调用此函数。

      ④.实例

KillTimer(1);

猜你喜欢

转载自blog.csdn.net/Robot_Starscream/article/details/83118599