光设置npos还不行啊;加入以下几行;
SetScrollSize(iWidth, 1);///
 SCROLLINFO si ; 
    GetScrollInfo( SB_VERT ,& si , SIF_ALL ); 
    si . nPos+=10;
si.nMax = iWidth;///设置宽度
si.nPage = rcClient.right;///    SetScrollInfo(SB_VERT,&si,TRUE);

解决方案 »

  1.   

    谢谢jackylee888(月半弯) ,加了还是不起作用呀,滚动条还是没有滚动
      

  2.   

    一般在OnDraw或者其它要求视图的滚动的地方调用 SetScrollSizes(MM_LOMETRIC, m_size);
    第一个参数是你的映射模式..如果你的视图是MM_TEXT的..你也可以设定..如果是其它..那么你的m_size的值就需要转换为响应模式...
    这样其它任务交给MFC完成了..你不能滚动..可能是你在view类里面没有这样定义
    void CMainView::OnInitialUpdate() {

    CScrollView::OnInitialUpdate();

    CSize sizeTotal;

    sizeTotal.cx = sizeTotal.cy = 100;

    SetScrollSizes(MM_LOMETRIC, sizeTotal);

    }
      

  3.   

    SetScrollSize(iWidth, 1);///没有这样的函数
    加了之后,滚动没有反应,还是不动
    谢谢
      

  4.   

    谢谢mxm324(木头) 
    我是在对话框里加入的一个CScrollView视图,在OnInitialUpdate()自动生成了SetScrollSizes(MM_LOMETRIC, sizeTotal);等代码,但是程序没有调用这个OnInitialUpdate()函数,又在OnPrepareDC()中增加了SetScrollSizes(MM_LOMETRIC, sizeTotal)等代码,现在就出现了不能滚动的情况,谢谢
      

  5.   

    有一种情况..你看看你的代码..是不是你当前的视图的DC被你设定了模式是MM_ANISOTROPIC 或者MM_ISOTROPIC这两个中其中一个?如果有..那不会滚动..如果不明白为什么..看看MSDN就知道了..还有就是那个sizeTotal的值是否正常..
      

  6.   

    www.codeproject.com/dialog/scrolling_support.asp
      

  7.   

    www.codeproject.com里边净是好东西