[转帖]
											  为了方便定时,在此程序中加入了一个时钟。原理主要是通过一个定时器(Timer),定时读取当前时间并按照格式显示,这里涉及到了VC中的另一个重要函数:OnTimer(UINT n
IDEvent)。在程序启动初始化的时候,加入语句: m_nTimer=SetTimer(1,100,NULL),其中参数100是响应周期(ms)。通过向导加入时间响应函数,代码如下:  
  void CShutDlg::OnTimer(UINT nIDEvent) //定时器响应函数 
  { 
  CTime gg; //定义时间变量 
  CString s; 
  gg=CTime::GetCurrentTime(); 
  //取出当前时间 
  s.Format(“%02d”,gg.GetSecond()); 
  //定义输出格式 
  SetDlgItemText(IDC_miao1,s); 
  //在程序中显示时间 
  s.Format(“%02d”,gg.GetHour()); 
  SetDlgItemText(IDC_xsh1,s); 
  s.Format(“%02d”,gg.GetMinute()); 
  SetDlgItemText(IDC_fzh1,s); 
  CDialog::OnTimer(nIDEvent);  
  } 
  OnTimer(UINT nIDEvent)是系统函数,它参考初始化时设置的响应周期(100ms)来执行。需要注意的是,如果在程序中设置了Timer,那么在程序结束的时候要加上语句:KillTimer(0),以销毁定时器对象,否则白白浪费系统资源。 
  至此一个较为完整的定时器程序完成(其中重启、注销功能的实现很简单,也非本文的主题,故略过),如果再添加几个
线程,即可扩展为一个多功能备忘录,有兴趣的读者可以加以改进。   
  小 结 
  本文中只是简单地运用了一个线程,
控制方式也是简单地与全局变量通信的方法,在实际应用中还要注意线程同步、线程之间通信、线程与
进程之间通信、利用全局变量通信、利用用户定义消息通信、利用事件通信等等许多重要问题。只有真正掌握了
多线程高级编程技术才能写出实用、优秀的程序。