程序设计中有很多要实现程序运行计时,和程序定时的实现,我现在给出我一般实现这种功能的方法:
1 在dialog对话框里加入一个只读的编辑控件并绑定CString型的public常量 m_strTime
2要计时的对话框加入WM_TIMER消息,回自动生成个OnTimer函数,默认就可以了
3具体代码实现:
.h文件里:
加入public变量:
public:
BOOL m_btimer;
UINT m_timer;
BOOL m_btimer;
UINT m_timer;
private变量:
private:
int h,m,s,ms;
int h,m,s,ms;
.cpp文件里:
初始化里加入:
h=m=s=ms=0;
m_strTime.Format("%02d:%02d:%02d:%01d",h,m,s,ms);
UpdateData(FALSE);
m_timer=SetTimer(1,100,NULL); //设置定时,每100ms发送一个定时消息到Windows消息队列
m_btimer=FALSE; //视图的初始化中是TRUE
m_strTime.Format("%02d:%02d:%02d:%01d",h,m,s,ms);
UpdateData(FALSE);
m_timer=SetTimer(1,100,NULL); //设置定时,每100ms发送一个定时消息到Windows消息队列
m_btimer=FALSE; //视图的初始化中是TRUE
在OnTime中加如:
void CMyDlg::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
m_strTime.Format("%02d:%02d:%02d:%01d",h,m,s,ms);
UpdateData(FALSE);
ms++;
if(ms==10){ms=0;s++;}
if(s==60){s=0;m++;}
if(m==60){m=0;h++;}
CDialog::OnTimer(nIDEvent);
}
{
// TODO: Add your message handler code here and/or call default
m_strTime.Format("%02d:%02d:%02d:%01d",h,m,s,ms);
UpdateData(FALSE);
ms++;
if(ms==10){ms=0;s++;}
if(s==60){s=0;m++;}
if(m==60){m=0;h++;}
CDialog::OnTimer(nIDEvent);
}