在我的应用程序中,我有许多来自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();
}
}
任何示例/想法?
答案 0 :(得分:1)
您需要调用CSplitterWnd :: DeleteView来执行此操作,这基本上意味着如果您打算将其还原,则必须将CView保存在其他位置。通常这不是问题,因为所有数据都应该存储在CDocument而不是CView中,但实际上可能并非如此。
我过去处理这个问题的方法是为我的CView类创建一个复制构造函数,这样我就可以轻松地将它们存储在临时变量中。
答案 1 :(得分:0)
答案 2 :(得分:0)
只有 CodeProject 文章 https://www.codeproject.com/Articles/2707/A-Static-Splitter-with-the-Ability-to-Hide-Show-Mu 中的 CExtSplitter
类对我有用。
这仍然是 VC6 代码,但做了一些小改动。