说白了是三个函数的使用:
SetTimer(20, 20, 0); //第一个20表示此定时器的标识符,第二个20表示你要定的时间,第三个不用管,设0即可。
void CLMS511_interfaceDlg::OnTimer(UINT_PTR nIDEvent)
{
// TODO: Add your message handler code here and/or call default
if(nIDEvent == 20)   //这个20是第一个20.
{
DrawData();
if(MySSocket.StopFlag)
SendServer();
}
CDialog::OnTimer(nIDEvent);
}
KillTimer(20);  //销毁标示符为20的定时器
  说明:
  SetTimer()定时器的第一个参数是定时器标识,可用任一非0的整数,第二个参数是定时器的时间间隔,单位是毫秒.第三个参数取值可以是NULL,
  这时WM_TIMER的消息加入应用程序的消息队列中,由CWnd类对象处理
  例如 SetTimer(1,1,NULL)的时间间隔是1毫秒
  下面例举一下定时函数的种类:
  Windows API
  SetTimer(HWND,UNIT,UINT,TIMERPROC);
  参数意义:
  1.记时器所在窗口句柄
  2.序号
  3.记时周期
  4.记时器响应函数
  CWnd类的
  CWnd::SetTimer
  UINT SetTimer(
  UINT nIDEvent,    //定时器的标识符
  UINT nElapse,    //所要定时的时间
  void (CALLBACK EXPORT* lpfnTimer)(
  HWND, UINT, UINT, DWORD) );
  下面是C++中如何测一个程序运行的时间举例:
  unsigned long ticks1,ticks2;
  在你要测试的开头写上
  ticks1 = GetTickCount();
  测试部分结束时写上
  ticks2 = GetTickCount();
  ticks2-ticks1是所用时间
  加上这个头文件Winbase.h
  下面再介绍一种测量程序执行时间的办法:
  <time.h> 版本
  clock_t start = clock();
  /*code to be tested*/
  clock_t end   = clock();
  cout<<end - start<<endl;
  大家多这个版本多半不会陌生,这应该是常用的执行时间测试方法了,能精确到ms级。
  在程序运行时打印到屏幕上的函数TRACE()
  TRACE("距离:%d",m_DIST[i]);//在输出栏输出信息。
  是记录日志信息的。%s在程序执行的时候替换成address对应的值。%d替换成函数WSAGetLastError()返回的错误码。
  总体翻译过来是Server "address" Can't Find Code="WSAGetLastError()"
  具体是写到文件里边,还是输出到标准输出即屏幕上,这个要看TRACE的实现了。
  还有一个定时的方法,用sleep()函数实现。调用windows.h