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, но он работает с небольшими изменениями.

Другие вопросы по тегам