如题

解决方案 »

  1.   

    CWnd::ShowScrollBar(UINT nBar, BOOL bShow = TRUE )
    nBar可取得值:
    SB_BOTH   指定水平垂直方向的滚动条
    SB_HORZ   指定水平滚动条
    SB_VERT   指定垂直滚动条
    bShow表示是否显示
    应该在CYouView的构造函数或者CMainFrame::OnCreate里调用
      

  2.   

    视图类的PreCreateWindow函数屏蔽下面的代码
    // cs.style &= ~(ES_AUTOHSCROLL|WS_HSCROLL); // Enable word-wrapping
      

  3.   

    cs.style = 0;
    cs.style = ( WS_OVERLAPPEDWINDOW | WS_MAXIMIZE );//处于最大化
    cs.style &= ~(ES_AUTOHSCROLL|WS_HSCROLL);不行, 还是去不掉
      

  4.   

    是屏蔽这行代码
    cs.style &= ~(ES_AUTOHSCROLL|WS_HSCROLL);
      

  5.   

    To:f26511314:
    给我发原代码可以吗?
    我真的找不到
      

  6.   

    在OnInitialUpdate()中添加
    ShowScrollBar(SB_BOTH,FALSE);试一下
      

  7.   

    要真正隐藏滚动条, 必须响应ON_WM_WINDOWPOSCHANGING(),如下隐蔽了水平滚动条:
    void CMyView::OnWindowPosChanging(WINDOWPOS FAR* lpwndpos) 
    {
    CScrollView::OnWindowPosChanging(lpwndpos);

    // TODO: Add your message handler code here
    ShowScrollBar (SB_BOTH, FALSE);
    ModifyStyle (WS_HSCROLL, 0, SWP_DRAWFRAME);
    }但是为为了能使视图滚动,必须响应ON_WM_HSCROLL(),设置视图的Pos,如下:void CBaseView::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 
    {
    // TODO: Add your message handler code here and/or call default
    CPoint pt = GetScrollPosition();
    CSize sz = GetTotalSize();
    if(nSBCode == SB_LEFT || nSBCode == SB_LINELEFT || nSBCode == SB_PAGELEFT)
    {
    pt.x -= 10;
    pt.x = (pt.x<0)?0:pt.x;
    }
    else if(nSBCode == SB_RIGHT || nSBCode == SB_LINERIGHT || nSBCode == SB_PAGERIGHT)
    {
    pt.x += 10;
    pt.x = (pt.x>sz.cx)?sz.cx:pt.x;
    }
    else if(nSBCode == SB_THUMBPOSITION || nSBCode == SB_THUMBTRACK)
    {
    pt.x = ((LONG)nPos>=0 && (LONG)nPos<sz.cx)?nPos:pt.x;
    }
    ScrollToPosition(pt);
    Invalidate();
    }
    某种意义上说,这种方可实现使水平滚动条搬家.