建议:你的最小单位(line)大于1的话,可以缩小一定的比例。

解决方案 »

  1.   

    我用的影射模式是pDC->SetMapMode(MM_LOENGLISH)
      

  2.   

    可以试试,我曾经自己处理过滚动条,就是这样的,但没有使用CScrollView
      

  3.   

    jiangping_zhu(娜可露露之风之刃) 
    你说的是用sizeLine吗?
      

  4.   

    CSize sizeTotal(800,50*1200);         
    CSize sizePage(sizeTotal.cx/2,sizeTotal.cy/2);
    CSize sizeLine(sizeTotal.cx/800,sizeTotal.cy/800);
    SetScrollSizes(MM_LOENGLISH,sizeTotal,sizePage,sizeLine)
    还是不行
      

  5.   

    我说的问题大家可能误会了,请看我发出的最新帖子200分等着你拿。那里面有详细的介绍。另外回答对了,这一百分也是他的。http://www.csdn.net/expert/topic/418/418276.shtm
      

  6.   

    我说的问题大家可能误会了,请看我发出的最新帖子200分等着你拿。那里面有详细的介绍。另外回答对了,这一百分也是他的。http://www.csdn.net/expert/topic/418/418276.shtm
      

  7.   

    使用以下API即可解决:
    SetScrollInfo
    GetScrollInfo
      

  8.   

    这个问题我还真的碰到过,其实解决的方法很简单:
    重载CScrollView的OnVscroll,具体如下:
    void CYourScrollView::OnVscroll(UINT nSBCode,UINT nPos,...)
    {
      if(nSBCode == SB_THUMBTRACK) //对拖动的处理,也可以对所有消息处理
      {
        SCROLLINFO scrinfo;
        GetScrollInfo(SB_VERT,&scrinfo);
        CPoint pt;
        pt.x = 0; pt.y = scrinfo.nTrackPos;
        ScrollToPosition(pt);
        return;
       }
       CScrollView::OnVscroll(...);
    }以上这段程序是在NT4.0下对滚动视图的处理,在NT下,滚动视图的范围总体是4字节整型的,只是在拖动时结构中用的是2字节,所以要额外处理。在98或95中,我没试过,如果都是2字节的,那就要对全部的滚动条消息处理了。试试看吧。
      

  9.   

    重载函数OnPrepareDC(CDC* pDC, CPrintInfo* pInfo)