导致这个问题可能会有不同的原因,本文讲的是我遇到的一种情况,所以如果你遇到的问题跟我是同一个原因,用这个方法能解决;如果不是,那就要再找别的原因了。
原因:duilib的滚动条拖动使用了WM_TIMER。所以如果处理了WM_TIMER的消息,并且拦截了所有TimerId的WM_TIMER消息,就会导致滚动套不能拖动。
解决办法:在自己的WM_TIMER出来函数中,判断是否是自己注册的TimerId,如果是,就把bHandled设置为TRUE,不再调用m_pm.MessageHandler或者CWindowWnd::HandleMessage;反之,就把bHandled设置为FALSE,以便WM_TIMER消息通过m_pm.MessageHandler或者CWindowWnd::HandleMessage继续处理。