CListView::OnTimer将定时器关了

来源:互联网 发布:腾讯数据库占地 编辑:程序博客网 时间:2024/04/28 12:33

一般来说,如果覆盖了虚函数和实现了消息的处理,基类的实现一般都要调用一下.
没想到,在定时器消息处理时,如果调用了基类实现,会将定时器关了.
还是调试方法的问题,遇到这类问题,要先将自己的实现屏蔽了,看看基类方法是否会将定时器关了。

void CMainView::OnTimer(UINT nIDEvent) {    /// CMainView 是 CListView 的子类    if (TIMER_EVENT_SN_ON_UPDATE == nIDEvent) {        MyUpdateUI();        return; ///< 定时器处理,如果自己的定时器已经处理了,不能再调用基类的处理!    }    /// 只要调用了基类的OnTimer, 这里就是来一次    /// 基类的OnTimer将定时器关掉了, 单步走下去,没看到源码中怎么关的    /// ::CallWindowProc 就没有源码了    CListView::OnTimer(nIDEvent);}

但是如果是CView子类中定时器处理,调用了基类实现,是不会将定时器关掉的

void CTest0921View::OnTimer(UINT nIDEvent) {    /// CTest0921View 是 CView 的子类    /// 调用了基类的OnTimer, 不会将定时器关掉!     CView::OnTimer(nIDEvent); ///< 每次都来}
0 0
原创粉丝点击