我用m_wndSplitter.SetColumnInfo( 0, 800, 30 );
m_wndSplitter.SetColumnInfo( 1, 0, 10 );
m_wndSplitter.RecalcLayout();
重设分割窗口的大小,想把其中一个隐藏,但是最小化一个试图后,其分割条还在,怎样去掉?

解决方案 »

  1.   

    重写CSplitterWnd类,在MFC源码中其边框是固定值,自己派生类出来改了其成员变量的值即可,或者重载相关函数,想改边框的颜色都可以.
      

  2.   

    class CMySplitterWnd : public CSplitterWnd
    {
    public:
    CMySplitterWnd();
    public:
    virtual ~CMySplitterWnd();
    };CMySplitterWnd::CMySplitterWnd()
    {
    m_cxSplitter=0;
    m_cySplitter=0;
    m_cxBorderShare=0;
    m_cyBorderShare=0;
    m_cxSplitterGap=1;
    m_cySplitterGap=1;
    m_cxBorder=0;
    m_cyBorder=0;
    }CMySplitterWnd::~CMySplitterWnd()
    {
    }然后 CSplitterWnd m_wndSplitter改为CMySplitterWnd m_wndSplitter
    最好是自己重画一下边框,否则效果不好.
      

  3.   

    m_cxSplitter等成员变量都是自己定义的吗,怎样旧能将这些变量与边框属性相关联呢?
      

  4.   

    太细的问题应该自己去解决了!
    重写OnDrawSplitter
      

  5.   

    OnDrawSplitter 怎么用啊,可以给个例子吗?