我从CWnd派生了一个类,并给这个类添加了定时器消息处理,但在SetTimer(id,interval,NULL)这个函数调用的地方无法通过,总是弹出程序终止的对话框并终止了程序。
单步调试发现是在SetTimer(id,interval,NULL)这个函数调用的地方,进入到AFXWIN2.INL文件,在其中的“ASSERT(::IsWindow(m_hWnd));”这一句就发生了上面的现象。
是不是因为m_hWnd为空或者它的值不是一个窗口所以才会这样的?(当然,在实际运行中这个变量的值确实是空的,因为没必要给它赋值哦。难道一定要给它赋值吗?)
请高手指点!
单步调试发现是在SetTimer(id,interval,NULL)这个函数调用的地方,进入到AFXWIN2.INL文件,在其中的“ASSERT(::IsWindow(m_hWnd));”这一句就发生了上面的现象。
是不是因为m_hWnd为空或者它的值不是一个窗口所以才会这样的?(当然,在实际运行中这个变量的值确实是空的,因为没必要给它赋值哦。难道一定要给它赋值吗?)
请高手指点!
参考
BOOL Create( LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext = NULL);