ActiveX控件中关于KillTimer()的异常

ActiveX控件中关于KillTimer()的错误

照着孙鑫MFC视频第18集做,居然有错误。具体情况:  


第一步:
int CClockCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
if (COleControl::OnCreate(lpCreateStruct) == -1)
return -1;

SetTimer(1,1000,0);
return 0;
}

void CClockCtrl::OnTimer(UINT nIDEvent) 
{
InvalidateControl();
COleControl::OnTimer(nIDEvent);
}


第二步:
在CClockCtrl类中添加一个属性变量short m_interval;外部名称为Interval;


void CClockCtrl::OnIntervalChanged() {
if(m_interval<0 || m_interval>6000)
{
m_interval=1000;
}
m_interval=m_interval/1000*1000;   //取整数

KillTimer(1);
SetTimer(1,m_interval,0); //设置新的计时器

SetModifiedFlag();
}

第三步:
在属性页对话框中,加入一个CEdit,关联short变量;
m_updateinterval 、 Value short 、 Interval(通过Interval这个名字,和属性变量m_interval关联到了一起);  完成

问题是,在测试容器中测试这个程序的时候,一切正常;但是把这个ActiveX控件添加到一个vc工程中的时候,每次改动属性页对话框中CEdit的值的时候,它就崩溃了
调试后发现,问题出在KillTimer(1)上面;可是视频里面是完全正常的啊,是我的VC没有装好,还是什么地方没设置好,还是哪个地方的代码有错误呢?

烦请指点!




------解决方案--------------------
看了一下,你的程序跟孙鑫里的程序在逻辑上不是完全一样的,看看哪里有遗漏了吧
------解决方案--------------------
先定位出问题的语句
------解决方案--------------------
18章孙鑫也在补发的勘误doc文档里说到了这个问题呀