如何让时间显示在Static Text控件中?我是新手!

liken218 2002-08-01 10:27:47
如何让时间显示在Static Text控件中?我是新手!
...全文
98 点赞 收藏 7
写回复
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
liken218 2002-08-02
谢谢了,派分!
回复
RedSunRS 2002-08-02
我认为你最好自已从CStatic派生一个类。自已增加定时器在对话框用初始化CTimeStatic::Initialize().
void CTimeStatic::OnTimer(UINT nIDEvent)
{
SYSTEMTIME st;
GetLocalTime(&st);
CString strDate;
strDate.Format("%d年%d月%d日%d时%d分%d秒",st.wYear,st.wMonth,st.wDay,st.wHour,st.wMinute,st.wSecond);
SetWindowText(strDate);
CStatic::OnTimer(nIDEvent);
}

void CTimeStatic::OnDestroy()
{
CStatic::OnDestroy();
KillTimer(1);
}

void CTimeStatic::Initialize()
{
SetTimer(1,1000,NULL);
}
回复
agui79 2002-08-02
up
回复
cwkxm 2002-08-02
以下代码绝对ok:

1、首先建立一个基于对话框的程序,在对话框的 OnInitDialog()中加入
 { // TODO.....……
  SetTimer(1,1000,NULL);//安装定时器,并将其时间间隔设为1000毫秒
}
2、利用ClassWizard为CMainFrame类或 CDialog类加入WM_TIMER
的消息处理函数OnTimer(),并添加代码如下:
void CMy33Dlg::OnTimer(UINT nIDEvent)
{// TODO: Add your message handler code here and/or call default
CTime time;
time=CTime::GetCurrentTime();//得到当前时间
CString s=time.Format("%H:%M:%S");//转换时间格式
SetDlgItemText(IDC_STATIC1,s);
//CMy33Dlg::OnTimer(nIDEvent);
}

3、千万别忘记在“程序退出”时,在OnClose()叵OnOk()中 销毁定时器
void CMy33Dlg::OnOK()
{ KillTimer(1);//销毁定时器
CDialog::OnOK();
}
回复
liken218 2002-08-01
这些只能得到当前时间,而要求时间要随着当前时间改变,又不能影响其它操做的。即一个时钟,该如何做?
回复
Bind 2002-08-01
CTime time = CTime::GetCurrentTime();
LPCTSTR lpcWeek[] = {_T("星期日"), _T("星期一"), _T("星期二"), _T("星期三"), _T("星期四"), _T("星期五"), _T("星期六")};
INT i = time.GetDayOfWeek();

m_strDate = time.Format(_T("%Y-%m-%d"));
m_strWeek.Format(_T("%s"), lpcWeek[i - 1]);
m_strTime = time.Format(_T("%H:%M:%S"));

UpdateData(FALSE);


//m_strXXX 对应每一个STATIC控件,在CLASSWIZARD中添加
回复
studentforever 2002-08-01
//首先获得系统时间
CTime t = CTime::GetCurrentTime();
//将该系统时按你要求地格式进行转换,假设存在str[80]中

//显示时间
GetDlgItem(YOUR_CTRL_ID)->SetWindowText(str);
回复
发动态
发帖子
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
社区公告
暂无公告