MFC: показ / скрытие разделительных панелей - PullRequest
1 голос
/ 16 октября 2008

В моем приложении у меня есть несколько панелей из классов 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();
    }
}

Какие-нибудь примеры / идеи?

Ответы [ 2 ]

1 голос
/ 16 октября 2008

Вам нужно вызвать CSplitterWnd :: DeleteView, чтобы сделать это, что в основном означает, что вы должны сохранить свой CView в другом месте, если вы намереваетесь восстановить его. Обычно это не проблема, поскольку все данные должны храниться в CDocument, а не в CView, но на практике это может быть не так.

Способ, которым я занимался в прошлом, - это иметь конструктор копирования для моих классов CView, чтобы я мог легко сохранять их во временных переменных.

0 голосов
/ 16 октября 2008

Помогает ли это?

http://www.codeguru.com/cpp/w-d/splitter/article.php/c1543

Я сам использовал нечто очень похожее,

...