在某一按钮单击事件中触发定时器,SetTimer(1,1000,NULL);
在相应的对话框的WM_TIMER ::OnTimer(UINT nIDEvent) 
在里面添加相应的代码;单步调试,SetTimer()返回正常的数值>0;
但是,OnTimer()无法触发;
why???
//重新创建一个工程就好使;真是见到鬼了,
各位给点意见;3x!!!!!!!!

解决方案 »

  1.   

    先将Windows Uapdate一下,其中有一条信息为:322913:建议采用的更新程序。本更新程序解决了 Windows 2000 中的"在 Wincows 2000 中 WM_TIMER 消息可能会被阻止向程序传递"这一问题,在 Microsoft 知识库 (KB) 文章 Q322913 中详细讨论了这一内容。请立即下载本更新程序,以便在 Windows 2000 中可以继续向程序发送 WM_TIMER 消息。
      

  2.   

    在CYourView::OnTimer(...)
    {
      
       CView::OnTimer();//把这句去掉看看。
    }
      

  3.   

    void CPinyinRiverDlg::OnButtonstart() 
    {
    //PaintStaticPic();
    SetTimer(1,100,NULL);
    //MessageBox("asdasd");
    //PostMessage(WM_TIMER);
    //PlaySound(".\\wav\\apple.wav",NULL,SND_FILENAME|SND_ASYNC);

    }
    void CPinyinRiverDlg::OnTimer(UINT nIDEvent) 
    {

    AfxMessageBox("hello");
    CDialog::OnTimer(nIDEvent);
    }
    代码如上;OnTime中具体代码我去掉了,测试messagebox也是不好使
      

  4.   

    你的OnTimer()是用ClassWizard创建的还是自己创建的,没有触发OnTimer()估计还是笔误
      

  5.   

    在OnTimer(UINT nIDEvent)中,我只是用了一个定时器,根本用不着来判断
    是那个定时器触发的,
      

  6.   

    还有个问题,现在心添加一个按钮,在其单击事件中,MessageBox()也是没有相应;
      

  7.   

    你单步执行一下,看有没有执行MessageBox();,如果执行了但是却没有想应,那就是VC的库坏了!
      

  8.   

    你单步执行一下,看有没有执行MessageBox(),如果执行了但是却没有想应!那很有可能是你在你的这个类里面或你程序的全局函数里面又重新定义了MessageBox(),程序执行的是你的函数!
      

  9.   

    是的,执行了,没有响应;进入了MessageBox的定义中,
      

  10.   

    如果不行,看来我只有重新做一个project了,怕还是出如此问题,那可如何是好?
      

  11.   

    呵呵,我有时后也发现MessageBox弹不出来,后来不知道怎么就解决了。关组一下。
      

  12.   

    系统其他程序在使用hook也有可能