我在拖动一个ListCtrl的垂直滚动条时不想刷新窗口内容,而是希望在拖动结束时在刷新。应该怎么做?ListClass::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
    switch (nSBCode)
    {
    case SB_THUMBTRACK:
        SetScrollPos(SB_VERT, nPos, TRUE);
        return;
    default:
        break;
    }    CListCtrl::OnVScroll(nSBCode, nPos, pScrollBar);
}我写到这里就不知道下面该如何处理了,case SB_THUMBPOSITION:时要做什么处理吗?

解决方案 »

  1.   

    自己控制。阻断mfc默认的消息传递流程,注意看一下方法的返回值,以及mfc自己生成的调用
    代码,把那些调用去掉。我的msdn坏了,现在没有办法给你更详细的说明了。
      

  2.   

    我把SB_TNUMBTRACK直接return,而不走默认的ClistCtrl::OnVScroll就是阻断了MFC的消息传递流程,写到这一步的确能够实现滚动条拖动时窗口不刷新,但是拖动结束时也不刷新了。所以我问是不是在case SB_THUMBPOSITION:里做什么处理。