我定义了一个类,继承CCJListView,在类的初始化成员函数中SetTimer(1,6000,NULL),
OnTimer中把当前时间写入文件,可我查看时间不是每6秒一条记录,而是每秒有多条记录,
然后我又修改了SetTimer(1,60000,NULL),这次查看文件每秒的记录少了些,但是,不是1分钟一条记录,虽然定时器时间不很精确,但不能查这么多吧。
请帮忙分析,是什么原因呀,先谢谢。

解决方案 »

  1.   

    OnTimer中判断nIDEvent没?
    if(nIDEvent==1)
    {
    ...
    }
    要不就再试其它的ID,比如SetTimer(WM_USER,6000,NULL);因为1可能被CCJListView用了。
      

  2.   

    在OnTimer中加断点调试一下,是否多次进入。还有,看看你的OnTimer函数怎么写的,贴出来看看
      

  3.   

    查找 SetTimer 看看在多少个地方做了设置,怀疑你重复设置了
      

  4.   

    void CResumedDeviceAlarmView::OnTimer(UINT nIDEvent) 
    {
    // TODO: Add your message handler code here and/or call default
    CStdioFile f( "MapFile.txt",
    CFile::modeCreate | CFile::modeWrite | CFile::typeText |CFile::modeNoTruncate);
    CString log;
    CTime tm = CTime::GetCurrentTime();
    log.Format("SetTime:%s\r\n",
    tm.Format("%Y-%m-%d %H:%M:%S"));
    f.SeekToEnd();
    f.WriteString(LPCTSTR(log));
    f.Close();

    }
      

  5.   

    可能你的程序在其他的地方,也发送过WM_TIMER消息,导致OnTimer函数被多次调用,你可以跟踪一次试试看,看到底在什么地方被调用过。