MFC: показ / скрытие разделительных панелей
В моем приложении у меня есть несколько панелей из классов 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();
}
}
Есть примеры / идеи?
3 ответа
Это помогает?
http://www.codeguru.com/cpp/w-d/splitter/article.php/c1543
Я сам использовал нечто очень похожее,
Вам нужно вызвать CSplitterWnd::DeleteView, чтобы сделать это, что в основном означает, что вы должны сохранить свой CView в другом месте, если вы намереваетесь восстановить его. Обычно это не проблема, поскольку все данные должны храниться в CDocument, а не в CView, но на практике это может быть не так.
В прошлом я справлялся с тем, чтобы иметь конструктор копирования для моих классов CView, чтобы я мог легко сохранять их во временных переменных.
Только
CExtSplitter
у меня работал класс из статьи CodeProject https://www.codeproject.com/Articles/2707/A-Static-Splitter-with-the-Ability-to-Hide-Show-Mu .
Это все еще код VC6, но он работает с небольшими изменениями.