第一种方法:利用线程
BOOL Cxxx::OnInitDialog()
{
......................................................
void ReadTime(VOID);
HANDLE hThread;
DWORD ThreadID;
hThread=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)ReadTime,NULL,0,&ThreadID);
}
...........................................................
void ReadTime(void)
{
CWnd *pWnd = AfxGetMainWnd();
HWND hWnd=pWnd->m_hWnd;
char str[50];
SYSTEMTIME st;
while(1)
{
GetLocalTime(&st);
sprintf(str,"%u:%u:%u",st.wHour,st.wMinute,st.wSecond);
SetDlgItemText(hWnd,IDC_EDIT1,str);
Sleep(1000);
}
}
注意:GetSystemTime获取的是UTC格林威治时间,也就是全球标准时间。
第二种方法:利用定时器
第一步 创建定时器
SetTimer(1,1000,NULL);
第二步 添加定时器响应函数
void CSdf12Dlg::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
Invalidate();
CDialog::OnTimer(nIDEvent);
}
第三步 在OnPaint或者OnDraw中添加代码,一般是在OnDraw中添加。
CTime time=CTime::GetCurrentTime();
CString str=time.Format("%H:%M:%S");
CDC *hdc;
hdc=GetDC();
hdc->TextOut(0,0,str);