本帖最后由 yulian33 于 2012-10-16 08:58:46 编辑

解决方案 »

  1.   

    你处理了拖动滚动条的消息了没有?WM_HSCROLL/WM_VSCROLL?
      

  2.   

    没做任何处理,我只在某些地方处理了
    SetScrollSizes (MM_LOMETRIC, CSize(pageWidth+100, pageHeight+100));
      

  3.   

    在WM_HSCROLL/WM_VSCROLL这两个消息函数里加中这句就行:
    Invalidate(FALSE);//参数是FALSE,表明只更新无效部分,如果是TRUE,就全部重新画,这样就会闪烁了
      

  4.   

    void CPreView::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
    {
        // TODO: Add your message handler code here and/or call default
        Invalidate(FALSE);
        CScrollView::OnVScroll(nSBCode, nPos, pScrollBar);
    }
    这样吗还是不行啊,还是会花掉
      

  5.   

    在ondraw中这样,
      m_nHScrollPos = GetScrollPos(SB_HORZ);
           m_nVScrollPos = GetScrollPos(SB_VERT);
          // pDC->SetWindowOrg (m_nHScrollPos, -m_nVScrollPos);
           pDC->SetViewportOrg (m_nHScrollPos, -m_nVScrollPos);
           pDC->Rectangle(PaperRect);
    貌似就好了,我不知道SetWindowOrg 和SetViewportOrg 是什么意思,到底起什么作用
      

  6.   

    “没做任何处理,我只在某些地方处理了
    SetScrollSizes (MM_LOMETRIC, CSize(pageWidth+100, pageHeight+100));”
    把100 加大就可以了 如1000 试试。
      

  7.   

    其实ScrollSize是要根据你需要滚动多大来设置的,如一页的大小。
    这样保证完整的一页能 滚动就行了。