hur.cn - 华软网

 热门搜索

基于对话框的MFC中控件中如何显示时间

  作者:未知    来源:网络    更新时间:2010/10/9
就是在Edit中如何显示时间,显示的时间是动态的,而不是静态的。求解??本人是新手。
---华软 网友回答---
用一个定时器,在定时器中用GetLocalTime得到当前时间,用一个CString的Format将它转化成字符串显示就行了。
---华软网友回复---
调用OnTimer函数,
nowtime = time(0);
asctime(localtime(&nowtime))
---华软网友回复---
如果是动态的可以用定时器来实现,增加OnTimer()函数。
另一个方法,可以用线程方式来实现,ThreadFunc里面用一个死循环实现时间的显示,然后Sleep(1000);开辟一个线程来调用。
---华软网友回复---
我一般是这么弄的

C++">	CTime	timeCur;
CString strTime, strDate, strDay;
CString strWeekDay[]={"日", "一", "二", "三", "四", "五", "六"};

timeCur = timeCur.GetCurrentTime();

strDate.Format("%d年%02d月%02d日", timeCur.GetYear(), timeCur.GetMonth(), timeCur.GetDay());
strDay.Format("星期%s", strWeekDay[timeCur.GetDayOfWeek()-1]);
strTime.Format("%02d:%02d:%02d", timeCur.GetHour(), timeCur.GetMinute(), timeCur.GetSecond());

GetDlgItem(IDC_STATIC_SUPERVISE_DATE)->SetWindowText(strDate);
GetDlgItem(IDC_STATIC_SUPERVISE_DAY)->SetWindowText(strDay);
GetDlgItem(IDC_STATIC_SUPERVISE)->SetWindowText(strTime);

---华软网友回复---
我一般是这么弄的

C/C++ code    CTime    timeCur;
    CString    strTime, strDate, strDay;
    CString    strWeekDay[]={"日", "一", "二", "三", "四", "五", "六"};

    timeCur    = timeCur.GetCurrentTime();

    strDate.Format("%d年%02d月%02d日", timeCur.GetYear(), timeCur.GetMonth(), timeCur.GetDay());
    strDay.Format("星期%s", strWeekDay[timeCur.GetDayOfWeek()-1]);
    strTime.Format("%02d:%02d:%02d", timeCur.GetHour(), timeCur.GetMinute(), timeCur.GetSecond());

    GetDlgItem(IDC_STATIC_SUPERVISE_DATE)->SetWindowText(strDate);
    GetDlgItem(IDC_STATIC_SUPERVISE_DAY)->SetWindowText(strDay);
    GetDlgItem(IDC_STATIC_SUPERVISE)->SetWindowText(strTime);
---华软网友回复---
楼上的几位写的已经很详细了。
---华软网友回复---
定时器设成一秒 用1楼方法
---华软网友回复---
SetTimer(),在OnTimer中GetSystemTime,然后格式化一下,SetDlgItemText设置CEdit框的数据
---华软网友回复---
void CCeshiDlg::OnButton1() 
{
SYSTEMTIME st;
CString today,now;
while(1)
{
GetLocalTime(&st);
today.Format("%d-%d-%d",st.wYear,st.wMonth,st.wDay);
now.Format("%d:%d:%d",st.wHour,st.wMinute,st.wSecond);
GetDlgItem(IDC_EDIT1)->SetWindowText(today+" "+now);
}

}
无法执行
---华软网友回复---
引用 9 楼 a419635259 的回复:
void CCeshiDlg::OnButton1() 
{
SYSTEMTIME st;
CString today,now;
while(1)
{
GetLocalTime(&st);
today.Format("%d-%d-%d",st.wYear,st.wMonth,st.wDay);
now.Format("%d:%d:%d",st.wHour,st.wMinu……

void CCeshiDlg::OnButton1() 
{
SYSTEMTIME st;
CString today,now;
while(1)
{
                Sleep(1000);
GetLocalTime(&st);
today.Format("%d-%d-%d",st.wYear,st.wMonth,st.wDay);
now.Format("%d:%d:%d",st.wHour,st.wMinute,st.wSecond);
GetDlgItem(IDC_EDIT1)->SetWindowText(today+" "+now);
}
}

忘了个sleep。。还是无法执行
---华软网友回复---
讲的挺好的,,,      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。