1

在我的应用程序中,我有许多来自 m_wndspliter 类的窗格。我想要做的是在运行时显示和隐藏这些窗格之一。虽然使用以下代码可以显示和隐藏与窗格关联的视图,但我无法暂时删除窗格本身。

CWnd * pCurView = m_wndSplitter2.GetPane(2, 0);
if( !pCurView == NULL )
{
    if( fShow )
    {
        pCurView->ShowWindow(SW_SHOW);
        RecalcLayout();
    }
    else
    {
        pCurView->ShowWindow(SW_HIDE);
        RecalcLayout();
    }
}

任何例子/想法?

4

3 回答 3

1

您需要调用 CSplitterWnd::DeleteView 来执行此操作,这基本上意味着如果您打算恢复它,您必须将 CView 保存在其他地方。通常这不是问题,因为所有数据都应该存储在 CDocument 而不是 CView 中,但实际上可能并非如此。

我过去处理这个问题的方法是为我的 CView 类创建一个复制构造函数,这样我就可以轻松地将它们存储在临时变量中。

于 2008-10-16T16:33:27.400 回答
0

这有帮助吗?

http://www.codeguru.com/cpp/wd/splitter/article.php/c1543

我自己用过非常相似的东西,

于 2008-10-16T17:39:25.363 回答
0

只有CExtSplitterCodeProject 文章https://www.codeproject.com/Articles/2707/A-Static-Splitter-with-the-Ability-to-Hide-Show-Mu中的课程对我有用。

这仍然是 VC6 代码,但它进行了较小的修改。

于 2021-02-07T14:17:02.503 回答