我的目的:获取系统时间,时:分:秒.毫秒 动态的显示在静态文本空间中
我的实现:
SYSTEMYIME m_st;//定义变量
void  GetTime(void)
{
    GetLocalTime(&m_st);
    CString m_timenow;
    
     m_timenow.Format("%0.2:%0.2:%0.2.%0.3 ",m_st.wHour,m_st.wMinute,m_st.wSecond,m_st.wMilliseconds); m_ctrTiNow.SetwimdosText(m_tiemnow);//m_ctrTiNow是与静态空间映射的变量
}
我的问题:不知道如何才能使时间动态的现实起来,当我调用GetTime(void)时,都只是显示调用那一毫秒的时间,请大牛们给个提示或思路。

解决方案 »

  1.   

    用个定时器,每毫秒响应一次,每次调用一次你的GetTime()
      

  2.   

    谢谢楼上两位,确实是需要先添加一个定时器,另外:调用定时器SetTimer(1,1,NULL);后OnTimer()没有被调用,我搞了一上午,没找到原因,望大牛再次点拨。
      

  3.   

    SetTimer(1001,1000,NULL);
    你那个是1毫秒一次,太快了。
      

  4.   

    SetTimer要在OnCreate或者OnInitDialog里调用
      

  5.   

    没有必要1ms,人眼刷新没这么快,windows也做不到这么快
      

  6.   

    没看清问题,算我没说。
    看看是不是SetTimer创建的位置不对。还有事件尽量不要用1,可能会有问题。
    SetTimer(1001,1,NULL);
      

  7.   

    谢谢各位的回复,小弟已经搞定。
    1ms是可以的,原因已找到:OnTimer()是需要通过创建WM_TIMER事件来驱动的,而我只是直接写的。
    并且SetTimer()在任何地方调用都没问题的,只是一般会放在类初始化的函数中。
      

  8.   


    SetTimer的第一个参数是定时器的ID,第二个参数才是时间间隔