VC中,我用CSplitterWnd将窗口分为两个子窗口,我现在希望按一个菜单按钮后,左边的子窗口的宽度变成0,右子窗口铺满整个窗口,该如何做啊,请帮帮忙啊!

解决方案 »

  1.   

    BOOL bShowThumb = FALSE;
    void CMainFrame::Split() 
    {
    CRect rect; GetWindowRect(&rect);
    if(!bShowThumb)
    {
    SecView* pSecView = (SecView*)m_wndSplitter.GetPane(0,1);
    m_wndSplitter.SetColumnInfo(1,rect.Width()-100,10);
    FstView* pFstView = (FstView*)m_wndSplitter.GetPane(0,0);
    m_wndSplitter.SetColumnInfo(0,100,10);
    m_wndSplitter.RecalcLayout();
    bShowThumb = TRUE;
    }
    else
    {
    SecView* pSecView = (SecView*)m_wndSplitter.GetPane(0,1);
    m_wndSplitter.SetColumnInfo(1,rect.Width(),10);
    FstView* pFstView = (FstView*)m_wndSplitter.GetPane(0,0);
    m_wndSplitter.SetColumnInfo(0,0,10);
    m_wndSplitter.RecalcLayout();
    bShowThumb = FALSE;
    }

    }
      

  2.   

    关键是这一句:m_wndSplitter.RecalcLayout();我忘了调用!现在搞定啦!感谢上面两位大哥!!!