创建窗口时我把WS_VSCROLL|WS_HSCROLL都选上了
映射方式为MM_TEXT
无论我把SetScrollSizes中CSzie设到多大都只有纵向滚动条
何解?

解决方案 »

  1.   

    void CShowFontView::OnInitialUpdate()
    {
    CScrollView::OnInitialUpdate();
    //
    CShowFontDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);
    int CharHei=pDoc->m_fntSize+HZ_GAP;//2 gap
    if(pDoc->m_fntSize==10) CharHei=16+HZ_GAP;
    //
    CSize sizeTotal=GetTotalSize();
    CSize page(0,0);
    CSize line(0,0);
    if(sizeTotal.cx==0 && sizeTotal.cy==0)
    {// no file opened !
    sizeTotal.cx = 1000;足够大就会有
    sizeTotal.cy = 7000;//24all=7000;
    SetScrollSizes(MM_TEXT, sizeTotal);
    }
    else
    {
    page.cy=CharHei*20;
    line.cy=CharHei;
    SetScrollSizes(MM_TEXT, sizeTotal,page,line);
    }
    }
      

  2.   

    void CTaskView::OnInitialUpdate()
    {
    CScrollView::OnInitialUpdate(); CSize sizeTotal;
    // TODO: 计算此视图的合计大小
    sizeTotal.cx = 9000;
    sizeTotal.cy = 9000;
    SetScrollSizes(MM_TEXT, sizeTotal);
    } m_taskview = new CTaskView;
    m_taskview->Create(NULL,NULL,WS_CHILD|WS_VISIBLE|WS_
               BORDER|WS_VSCROLL|WS_HSCROLL , rect,this,NULL);
      

  3.   

    你的View类直接从CscollView派生的吗?怎么还需要WS_VSCROLL|WS_HSCROLL
    是不是从CView派生后改的?
      

  4.   

    还有什么其他的可能导致没有横向的滚动条呢?
    sizeTotal.cx和sizeTotal.cx的比例问题?
      

  5.   

    有没有经过你的“void CTaskView::OnInitialUpdate()”?
      

  6.   

    什么意思啊?
    什么有没有经过CTaskView::OnInitialUpdate()
      

  7.   

    OnInitialUpdate()是由Frame调用的,你Create后需要自己调用。
    或者调m_taskview->SetScrollSizes(MM_TEXT, sizeTotal);