一个定时器不工作的问题?

myrosers 2005-10-20 03:32:23
定时器
void CC::OnTimer(UINT nIDEvent)
{
switch(nIDEvent)
{
case 1:
break;
.
.
case 4:
fUpSpeed += m_UpSpeed; //1s累加一次

//KillTimer(4);
break;

}

CFormView::OnTimer(nIDEvent);
}
定时器作用
if (m_bSaveH)
{
m_rfile2.Write((LPCTSTR)strNH,strNH.GetLength());
m_rfile2.Flush();
SetTimer( 4, 1000, NULL); //如果此处改为定时100ms定时器就起作用,而1000ms则不起作用?
}
杀掉定时器
if(m_bSaveH)
{
m_rfile2.Close(); //关闭文件
m_bSaveH = FALSE;
fUpSpeed = 0;
KillTimer(4);

GetDlgItem(IDC_BSAVE)->EnableWindow(!m_bSave);
}
...全文
347 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
alen_ghl 2005-10-21
  • 打赏
  • 举报
回复
单这些代码是没有问题的,估计是别的地方出了逻辑问题,间接导致定时器不正常
建议把完整代码贴出来,只要涉及定时器的地方
菜牛 2005-10-21
  • 打赏
  • 举报
回复
如果设了多个定时器,你用定时器函数TimerProc试试?
xiaoguaiwei 2005-10-21
  • 打赏
  • 举报
回复
删除CFormView::OnTimer(nIDEvent);试试。
myrosers 2005-10-21
  • 打赏
  • 举报
回复
lizmei001(暗黑)
两个if的位置不同
远志999 2005-10-20
  • 打赏
  • 举报
回复
如果不和硬件通讯,应该不会出错
lizmei001 2005-10-20
  • 打赏
  • 举报
回复
定时器作用
if (m_bSaveH)
{
m_rfile2.Write((LPCTSTR)strNH,strNH.GetLength());
m_rfile2.Flush();
SetTimer( 4, 1000, NULL); //如果此处改为定时100ms定时器就起作用,而1000ms则不起作用?
}
杀掉定时器
if(m_bSaveH)
{
m_rfile2.Close(); //关闭文件
m_bSaveH = FALSE;
fUpSpeed = 0;
KillTimer(4);

GetDlgItem(IDC_BSAVE)->EnableWindow(!m_bSave);
}

二个if都一样的条件???
myrosers 2005-10-20
  • 打赏
  • 举报
回复
这就是我的想法,觉得没错。所以才会不解!
windcsn 2005-10-20
  • 打赏
  • 举报
回复
逻辑问题
没有这种道理说100ms工作1000ms就不工作
检查代码,查看逻辑

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧