void CKeyGenConvertDlg::IDOK
{
SetTimer(5,100,NULL);
}void CKeyGenConvertDlg::OnTimer(UINT nIDEvent)
{
  //   TODO:   Add   your   message   handler   code   here   and/or   call   default   
        switch(nIDEvent)   
        {   
case 5:GetDlgItem(IDC_EDIT2)->SetWindowText("ch");break;   
        }   
CDialog::OnTimer(nIDEvent);
}IDOK是按钮,为什么case 5执行不起来?

解决方案 »

  1.   

    没添加消息映射吧?
    BEGIN_MESSAGE_MAP(CKeyGenConvertDlg, CDialog)
    ON_WM_TIMER()
    END_MESSAGE_MAP()
      

  2.   

    采用添加WM_TIMER消息的方式添加定时器怎么可能不成功呢?先在OnTimer的函数入口处设置断点看看能不能进来,能进来就好说了,再看是不是计时器标号错误
      

  3.   

    楼主你设定了几个定时器?请好好检查一下是否设置标号错误
    另外,你的代码是直接写上去的吧?所以才没有对应的ON_WM_TIMER()
       建议你把相关部分设定定时的函数删去,再通过ClassWizard 在对话框加载响应WM_TIMER 消息响应,之后MFC会给你自动加载
    OnTimer(UINT nIDEvent) 
    最后实现部分你自己添加代码即可。
      

  4.   

    ON_WM_TIMER
    这个还是要的,要不然不知道把WM_TIMER消息传给哪个函数
      

  5.   

    MFC帮你封装了消息机制,如果没有这个消息映射,消息是不会被处理的对消息机制多点了解就明白了,其实也不难理解,去网上搜一下吧