基于Dlg的两个Timer的设置有关问题
基于Dlg的两个Timer的设置问题
我自己生成一个类,是派生自CWnd的,我在这个类里建立了WM_TIMER消息。我在dlg类下生成了之前定义的这个类的对象,然后调用此对象的OnTimer(),结果编译都通过,但是运行就出错。
// CMyTimerTest.h
class CMyTimerTest : public CWnd
{
//{{AFX_MSG(CMyTimerTest)
afx_msg void OnTimer(UINT nIDEvent);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
}
// CMyTimerTest.cpp
void CMyTimerTest::OnTimer(UINT nIDEvent)
{
if (nIDEvent == 1){ // do sth....}
}
// CDlgTestDlg.h
class CDlgTestDlg : public CDialog
{
CMyTimerTest mtt;
}
// CDlgTestDlg.cpp
void CDlgTestDlg::OnTimer(UINT nIDEvent)
{
// do sth...
CDialog::OnTimer(nIDEvent);
}
void CDlgTestDlg::OnButtonSet()
{
mtt.SetTimer(1,1000,NULL);
}
而且,我设置了断点,结果在AFXASERT.CPP中,
BOOL bResult = _CrtDbgReport(_CRT_ASSERT, lpszFileName, nLine, NULL, NULL);
这句过不去.....
请问,我该如何设置?
------解决方案--------------------
该类对象没有界面?不用启动?应该是你用了该类对象,但是该对象尚未创建通过.
------解决方案--------------------
关于线程,看看《win32多线程程序设计》吧。。。
这个不错。
------解决方案--------------------
我想是不是因为你重载了基类的OnTimer函数而出现问题呢,自己换个函数,在基类的OnTimer函数里调用你的函数
我自己生成一个类,是派生自CWnd的,我在这个类里建立了WM_TIMER消息。我在dlg类下生成了之前定义的这个类的对象,然后调用此对象的OnTimer(),结果编译都通过,但是运行就出错。
// CMyTimerTest.h
class CMyTimerTest : public CWnd
{
//{{AFX_MSG(CMyTimerTest)
afx_msg void OnTimer(UINT nIDEvent);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
}
// CMyTimerTest.cpp
void CMyTimerTest::OnTimer(UINT nIDEvent)
{
if (nIDEvent == 1){ // do sth....}
}
// CDlgTestDlg.h
class CDlgTestDlg : public CDialog
{
CMyTimerTest mtt;
}
// CDlgTestDlg.cpp
void CDlgTestDlg::OnTimer(UINT nIDEvent)
{
// do sth...
CDialog::OnTimer(nIDEvent);
}
void CDlgTestDlg::OnButtonSet()
{
mtt.SetTimer(1,1000,NULL);
}
而且,我设置了断点,结果在AFXASERT.CPP中,
BOOL bResult = _CrtDbgReport(_CRT_ASSERT, lpszFileName, nLine, NULL, NULL);
这句过不去.....
请问,我该如何设置?
------解决方案--------------------
该类对象没有界面?不用启动?应该是你用了该类对象,但是该对象尚未创建通过.
------解决方案--------------------
关于线程,看看《win32多线程程序设计》吧。。。
这个不错。
------解决方案--------------------
我想是不是因为你重载了基类的OnTimer函数而出现问题呢,自己换个函数,在基类的OnTimer函数里调用你的函数