c++ - MFC:显示/隐藏分隔面板

标签 c++ windows winapi mfc csplitterwnd

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

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

有什么例子/想法吗?

最佳答案

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

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

关于c++ - MFC:显示/隐藏分隔面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/209110/

相关文章:

c++ - 如何划分位集?

c - 使用 winHttpApi 或套接字发送大文件是否明智?

windows - Teamcity 管道命令行输出到文件

c++ - C++ 中用于计划任务的 Win32 函数

c++ - 如何构造像 C# WinForms 这样的 C++ Windows API 程序

ruby - 如何从 Ruby 调用 CreateWindowEx?

c++ - OOP可以在嵌入式C中使用吗?

c++ - 在同一个类中定义的这两个函数如何在没有前向声明的情况下相互调用?

c++ - 在 C++17 中使用 noexcept 的 std::function

c - 如何删除任意 HWND 边框 (WinAPI)?