我有一基于CScrollView的MyView, 当显示的文本较多时,下拉滚动条数度快时,会自动弹到顶端,如何解决

解决方案 »

  1.   

    程序如下:
    OnDraw()
    {
    CRect  rect;
    GetClientRect(&rect);pDC->DrawText(m_strLogContent, rect, DT_CALCRECT); //计算rect的大小pDC->DrawText(m_strLogContent, rect, DT_LEFT|DT_EXPANDTABS);
    ......
    SetScrollSizes(MM_TEXT, docSize, pageSize, lineSize);
    ..
    }如果m_strLogContent所带的文本行数很大的话,下拉垂直滚动条一直到底, 垂直滚动条会自动弹到scrollview的顶端。如何才能让垂直滚动条乖乖的呆在鼠标托到的地方。
      

  2.   

    ONVSCROLL里面,当nSBCode为SB_THUMBTRACK  SB_THUMBPOSITION时,调用SETSCROLLINFO设定SCROLL BAR 的位置.
      

  3.   

    我如此写
    OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 
    {
    SCROLLINFO  scrollInfo;
    memset(&scrollInfo, 0, sizeof(SCROLLINFO));GetScrollInfo(SB_VERT, &scrollInfo);
    if(nSBCode == SB_THUMBPOSITION || nSBCode == SB_THUMBTRACK )
    {
    // scrollInfo.nPos = nPos;
    SetScrollInfo(SB_VERT, &scrollInfo);
    }CScrollView::OnVScroll(nSBCode, nPos, pScrollBar);
    }
    但是问题依旧