如何做个时钟? 只要能在屏幕上比较准确的显示时间就行了,不要求界面美观,在CStatic中显示都行,我想是不是应该专门为它建个线程,这个线程不断的取系统时间并显示,可是隔多久取一次呢?(我的要求是尽量减少开销,但又要准确,精确到秒),请高手帮我写写代码。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用settimer,间隔设为1秒,在ontimer里面用CTime类得到时间然后显示 用SetTimer就可以 OnTimer里不断的取时间也可以用线程,怎么都行 void CAaView::OnTimer(UINT nIDEvent) { RedrawWindow(); CDC pDC; pDC.m_hDC=::GetDC(NULL); COleDateTime time; int h=time.GetCurrentTime().GetHour(); int m=time.GetCurrentTime().GetMinute(); int s=time.GetCurrentTime().GetSecond(); CString str; str.Format("%2d:%3d:%2d",h,m,s); //CRect rect(300,0,100,20);// pDC.DrawText(str,rect,DT_PATH_ELLIPSIS ); pDC.TextOut(300,10,str); ReleaseDC(&pDC); CView::OnTimer(nIDEvent);}别忘了初始化时SetTimer(500);吧 void CMainFrame::OnTimer(UINT nIDEvent){if (nIDEvent == uClockID) CString sTime=LPCTSTR(CTime::GetCurrentTime().Format("%H:%M"))//然后想怎么办都可以了} 我这个人的缺点就是太注重效率,让我去做低级程序说不定会有我的一片天空!开个玩笑!我还有问题,显示时间的确很简单,这我也知道,我一直在想是取时间好呢,还是取一次时间,然后在以后的OnTimer中加时间,加到10次后,再读一次系统时间,然后再在以后的9次中每次增加一秒,这样效率肯定会高,而且我认为公司经理一定看不出来,你们说这样行不行?因为取系统时间,再格式化输出,感觉太耗CPU资源,而且,说不定经理某一天心血来潮让精确到0.1秒显示一次怎么办?就更耗CPU资源了,我这个人整天想的是如何在同时间内做更多的事,或是同样的事让CPU空闲久一点,让他好散热!:) hehe,楼主的方法很巧妙,应该可以做到. kindpop1() 你不明白我的意思,不过非常感谢你!我是想怎么样尽量减少取系统时间的次数,还要保证时间显示的正确性,及时性。 求助各位,都给点意见吧!!!!!!!!!!!!! VC列表控件重建表头 关于STL在VS2005的简单例子,为什么不行? 急急急!在线等!!CListCtrl::GetColumn的问题! 为何按钮控件背景色不改变? ***请教大家***有关CComboGridCtrl类**急!* 如何获取当前输入法的名称和16X16图标?谢谢! 女朋友提出分手,郁闷,散分 请教高手:我在资源视图中定义了一个对话框,可我想在打开此对话框时改变其大小 容易得分的问题 PeekMessage和GetMessage的区别 有没有办法让静态控件显示字符串时自动换行
也可以用线程,怎么都行
{
RedrawWindow();
CDC pDC;
pDC.m_hDC=::GetDC(NULL); COleDateTime time; int h=time.GetCurrentTime().GetHour();
int m=time.GetCurrentTime().GetMinute();
int s=time.GetCurrentTime().GetSecond();
CString str;
str.Format("%2d:%3d:%2d",h,m,s);
//CRect rect(300,0,100,20);
// pDC.DrawText(str,rect,DT_PATH_ELLIPSIS );
pDC.TextOut(300,10,str); ReleaseDC(&pDC);
CView::OnTimer(nIDEvent);
}别忘了初始化时SetTimer(500);吧
{
if (nIDEvent == uClockID)
CString sTime=LPCTSTR(CTime::GetCurrentTime().Format("%H:%M"))
//然后想怎么办都可以了
}
开个玩笑!我还有问题,显示时间的确很简单,这我也知道,我一直在想是取时间好呢,还是取一次时间,然后在以后的OnTimer中加时间,加到10次后,再读一次系统时间,然后再在以后的9次中每次增加一秒,这样效率肯定会高,而且我认为公司经理一定看不出来,你们说这样行不行?
因为取系统时间,再格式化输出,感觉太耗CPU资源,而且,说不定经理某一天心血来潮让精确到0.1秒显示一次怎么办?就更耗CPU资源了,我这个人整天想的是如何在同时间内做更多的事,或是同样的事让CPU空闲久一点,让他好散热!:)