我在多文档CMainFrame中分别定义了ON_WM_TIMER()和afx_msg void OnTimer(UINT nIDEvent);
并且在 CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)中创建了定时器this->SetTimer(ID_FRAMETIMER, FRAMETIMER, NULL);现在问题是定时器工作正常,但在
CMainFrame::~CMainFrame()
{
        KillTimer(ID_FRAMETIMER);  //停止框架处理定时器
        。
sss ="123456";
CString kkk=sss;
} 主框架退出时只要执行到KillTimer(ID_FRAMETIMER);  这句,则后面的其它程序都没有运行,直接跳出函数块,感觉就是异常了   请各位高手指点一二(这个类似程序在vc6下做过,现在移植到vc2005就不对了)

解决方案 »

  1.   

    是不是定时器ID不对, 或者是该定时器未进行SetTimer()
      

  2.   

    印象中在构造函数中SetTimer是会出错的,可能在析构函数中KillTimer也是同理
      

  3.   

    谢谢楼上的各位yuhuaijun:
         我问题中说了在构造函数中定义了setTimer,在resouece.h中也定义了唯一ID,特别是定时器工作正常paulcxz:
         定时器工作正常xianglitian:
         上述代码是从vc6代码移植来的,vc 6中没有出这个问题
    请大家再帮想想,谢了
      

  4.   

    vc6中没有错并不代表没有问题
    如果是那样的话这些新的IDE也就无所谓进步了
    很多vc6的工程在以后的版本中都无法正常编译
    语言标准在升级
    编译器在升级
    MFC的类库也在升级
    最关键的问题是我觉得和窗口有关的操作最好在类似OnDestoryWindow这样的消息函数中处理
    当然
    这也是个人观点
      

  5.   

    谢谢,我这个定时器是在Mainframe中定义的,该怎么写呢,我以前在对话框中使用过OnDestoryWindow
      

  6.   

    KillTimer(ID_FRAMETIMER); //停止框架处理定时器
    KillTimer是和HWND窗口句柄相互关联的,你在析构函数中KillTimer肯定错了,HWND都为NULL了,你可以在WM_DESTROY消息的消息响应函数中去KillTimer定时器
      

  7.   

    vc2005之后的IDE除窗口外的类怎么方便的增加消息映射呀
      

  8.   

    谢谢楼上各位,特别是xianglitian和VisualEleven,结贴了,呵呵,可惜分少了