C++时间函数(软件开发)
还需要添加什么样的代码才能使时间随系统时间更新而更新?1、建立一个基于对话框的应用程序SystemTime2、建立时间函数voidCSystemTimeDlg::OnPa...
还需要添加什么样的代码才能使时间随系统时间更新而更新?
1、建立一个基于对话框的应用程序SystemTime
2、建立时间函数
void CSystemTimeDlg::OnPaint()
{
CDC*pDC = GetDC();
CFont Font;
CRect rect,rc;
GetClientRect(rect);
CTime time = CTime::GetCurrentTime();
m_Font.CreatePointFont(90,_T("宋体"),pDC);
pDC->SelectObject(&m_Font);
pDC->SetTextColor(RGB(5,5,155));
pDC->SetBkMode(TRANSPARENT);
rc.CopyRect(rect);
rc.DeflateRect(359,17,0,0);
pDC->DrawText(time.Format("%Y年%m月%d日"),rc,DT_CENTER);
rc.CopyRect(rect);
rc.DeflateRect(323,38,0,0);
pDC->DrawText(time.Format("%H:%M:%S"),rc,DT_CENTER);
rc.CopyRect(rect);
rc.DeflateRect(420,38,0,0);
pDC->DrawText(time.Format("[星期%w]"),rc,DT_CENTER);
Font.DeleteObject();
}
之后还需要添加什么函数?
SetTimer?要怎么实现? 展开
1、建立一个基于对话框的应用程序SystemTime
2、建立时间函数
void CSystemTimeDlg::OnPaint()
{
CDC*pDC = GetDC();
CFont Font;
CRect rect,rc;
GetClientRect(rect);
CTime time = CTime::GetCurrentTime();
m_Font.CreatePointFont(90,_T("宋体"),pDC);
pDC->SelectObject(&m_Font);
pDC->SetTextColor(RGB(5,5,155));
pDC->SetBkMode(TRANSPARENT);
rc.CopyRect(rect);
rc.DeflateRect(359,17,0,0);
pDC->DrawText(time.Format("%Y年%m月%d日"),rc,DT_CENTER);
rc.CopyRect(rect);
rc.DeflateRect(323,38,0,0);
pDC->DrawText(time.Format("%H:%M:%S"),rc,DT_CENTER);
rc.CopyRect(rect);
rc.DeflateRect(420,38,0,0);
pDC->DrawText(time.Format("[星期%w]"),rc,DT_CENTER);
Font.DeleteObject();
}
之后还需要添加什么函数?
SetTimer?要怎么实现? 展开
4个回答
2013-04-13
展开全部
可以用SetTimer。先添加WM_TIMER消息响应,然后SetTimer(1,1000,NULL),然后在响应函数里面调用Invalidate函数就可以了,这样可以实现每一秒重绘一次,调用ONPAINT.
2013-04-13
展开全部
先在OnInitDialog中添加SetTimer(1, 1000, NULL);// 设置定时器,每秒跳一次;后添加WM_TIMER消息响应,调用你的OnPaint或Invalidate函数,退出时KillTimer(1);// 释放定时器
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-04-13
展开全部
或者你可以起一支子线程做Timer的工作。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
SetTimer设置成1000毫秒,WM_TIMER中通过 GetLocalTime (&st); 获取系统当前时间,通过st结构体赋值给年月日星期时间等。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询