请问如何在MFC窗口的数据显示区中的某一指定位置显示当前时间,即象WINDOWS右下脚任务栏中的时间一样,把实时时间显示在MFC窗口数据显示区中,就像显示一幅位图一样,只不过这里要求程序一启动就显示时间!感谢大家提供帮助!

解决方案 »

  1.   

    用GetSystemTime获得时间显示,并SetTimer(1,1000,NULL)
      

  2.   

    这很容易啊CTime::GetCurrentTime()可以得到当前时间,使用CTime::Format函数可以得到时间字符串,然后在一个Timer中实时地TextOut到屏幕上就可以了
      

  3.   

    首先定义一个WM_TIMER处理函数,每秒钟执行一次。
    然后在处理函数中用GetLocalTime得到时间。
    并写入窗口数据显示区即可。
      

  4.   

    CTime t=CTime::GetCurrentTime();   //取出当前时间
        int y=t.GetYear();
    int d=t.GetDay();
    int m=t.GetMonth();
    int h=t.GetHour();
    int min=t.GetMinute();
    int s=t.GetSecond(); CString yy,dd,mm,hh,mins,ss,total;
    yy.Format("%d",y);
    dd.Format("%d",d);
    mm.Format("%d",m);
    if(h<10)
        hh.Format("0%d",h);
    else
    hh.Format("%d",h);
    if(min<10)
            mins.Format("0%d",min);
    else
        mins.Format("%d",min);
    if(s<10)
        ss.Format("0%d",s);
    else
    ss.Format("%d",s);    total=yy+"-"+mm+"-"+dd+"  "+hh+":"+mins+":"+ss;
    GetDlgItem(IDC_STATIC1)->SetWindowText(total); //在静态文本框中这里用的是显示在一个静态文本框中,
    当然你想显示在什么地方由你自己定,只要把以上显示的代码放到初始化里就行了.
      

  5.   

    bluebohe(薄荷)大哥,能不能帮我写一段简单的代码,谢谢了!
      

  6.   

    m_wndStatusBar.SetText(4, CTime::GetCurrentTime().Format("系统时间:%H:%M:%S"),CTime::GetCurrentTime().Format("%H:%M:%S"));m_wndStatusBar为状态条
      

  7.   

    View中OnCreate添加SetTimer(1,1000,NULL),OnDestroy() 添加 KillTimer(1);然后用类向导导出View类的WM_TIMER消息响应函数,在这个函数中添加代码
      

  8.   

    我在view类中没有看到OnCreate()和OnDestroy() 两个函数,我把SetTimer(1,1000,NULL)和
    KillTimer(1)分别加到OnBeginPrinting和OnEndPrinting中的。并且加入了WM_TIMER消息响应函数,代码如下:
    void CTimerView::OnTimer(UINT nIDEvent) 
    {
    // TODO: Add your message handler code here and/or call default
    CTime t=CTime::GetCurrentTime();   //取出当前时间
        int y=t.GetYear();
    int d=t.GetDay();
    int m=t.GetMonth();
    int h=t.GetHour();
    int min=t.GetMinute();
    int s=t.GetSecond(); CString yy,dd,mm,hh,mins,ss,total;
    yy.Format("%d",y);
    dd.Format("%d",d);
    mm.Format("%d",m);
    if(h<10)
        hh.Format("0%d",h);
    else
    hh.Format("%d",h);
    if(min<10)
            mins.Format("0%d",min);
    else
        mins.Format("%d",min);
    if(s<10)
        ss.Format("0%d",s);
    else
    ss.Format("%d",s);    total=yy+"-"+mm+"-"+dd+"  "+hh+":"+mins+":"+ss;
    HDC m_hdc=::GetDC(*this);
    TextOut(m_hdc,0,0,total,20);//在这里输出时间 CView::OnTimer(nIDEvent);
    }
    但为什么窗口中没有任何反应?请指教!
      

  9.   

    SetTimer(1,1000,NULL)和KillTimer(1);放的位置不正确!
    SetTimer(1,1000,NULL)一般放在初始化中,
    KillTimer(1) 放在销毁窗口或停止计时的代码中;
      

  10.   

    我是采用的基于MFC的单文本结构,这两个函数我应该分别放到那里?
      

  11.   

    我是采用的基于MFC的单文本结构,这两个函数我应该分别放到那里?
      

  12.   

    楼主你不是吧,薄荷是不是晕倒了已经? :)在ClassView的CTimerView项上单击鼠标右键,在弹出菜单中选择“Add Windows Message handler”,然后在弹出的对话框左边列表里面双击WM_CREATE,然后按Edit Existing就可以添加OnCreate函数的代码了同样的步骤,双击WM_DESTROY,可以添加OnDestroy的函数代码