MDI程序 视图由于某种原因不能使用CScrollView 所以只能采用CVIEW。这样就需要自己设置滚动条。
在OnSize中应该如何实现让滚动条滑块大小与窗口尺寸同步变化呢?一直没法实现。PS:顺带问个问题,SCROLLINFO 中的 nMax值 会不会因为在改变窗口大小是滚动条长度的改变而改变?

解决方案 »

  1.   


    CRect rect;
    CSize sizeTotal;
    CClientDC dc(this);
    GetClientRect(rect);
    sizeTotal.cx = rect.right;
    sizeTotal.cy = rect.bottom;
    SetScrollSizes(MM_TEXT, sizeTotal);
    Invalidate(FALSE);不会改变
      

  2.   

    setwindowpos试试,获得滑块的句柄,根据窗口的大小调用setwindowpos来改变滑块的大小
      

  3.   

    void CDialogSet::OnSize(UINT nType, int cx, int cy) 
    {
    CDialog::OnSize(nType, cx, cy);

    GetClientRect(&m_rect1);

    m_scrollInfo.nPage = (int)m_rect1.bottom * m_rect1.bottom/m_rectInit.bottom;
    m_scrollInfo.nMax = (int)(m_rect1.bottom);
    m_ieveryPageLength = (int)(m_rectInit.bottom - m_rect1.bottom) /10+1;
    m_istep = (m_rect1.bottom - m_scrollInfo.nPage)/10; SetScrollInfo(SB_VERT,&m_scrollInfo,SIF_ALL); 
    }以前我写的,试试把
      

  4.   

    问下 eagerle01 m_rectInit 表示的是什么矩形框?
      

  5.   

    继续问
    为什么把 滚动条的最大长度设置成 m_scrollInfo.nMax = (int)(m_rect1.bottom);?