我在多文档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就不对了)
并且在 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就不对了)
我问题中说了在构造函数中定义了setTimer,在resouece.h中也定义了唯一ID,特别是定时器工作正常paulcxz:
定时器工作正常xianglitian:
上述代码是从vc6代码移植来的,vc 6中没有出这个问题
请大家再帮想想,谢了
如果是那样的话这些新的IDE也就无所谓进步了
很多vc6的工程在以后的版本中都无法正常编译
语言标准在升级
编译器在升级
MFC的类库也在升级
最关键的问题是我觉得和窗口有关的操作最好在类似OnDestoryWindow这样的消息函数中处理
当然
这也是个人观点
KillTimer是和HWND窗口句柄相互关联的,你在析构函数中KillTimer肯定错了,HWND都为NULL了,你可以在WM_DESTROY消息的消息响应函数中去KillTimer定时器