2014-05-22 4 views
0

Я понимаю, что CDockablePanes помнят свое состояние, когда программа закрыта, а затем снова открыта, но я не понимаю, как я должен показать CDockablePane, которая была закрыта в предыдущем использовать.Как показать CDockablePane после того, как он был закрыт

Это мой код инициализации:

DWORD dwPaneStyle = WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_FLOAT_MULTI; 
    MyPane.Create(_T("MyPane"), this, CRect(0, 0, 0, 120), TRUE, ID_VIEW_MYPANE, dwPaneStyle | CBRS_BOTTOM)); 
    MyPane.ShowPane(TRUE, FALSE, TRUE); 

Так это будет создать свою панель, а затем установить его показать, но по некоторым причинам я не могу видеть это в моем главном кадре ... Что я Я пропустил?

Кроме того, я хотел бы иметь возможность отображать панель при нажатии определенной кнопки. У меня уже есть мои MessageMap и OnButtonFct(). Мне просто нужно знать, как показывать панель.

Спасибо!

+0

Вы намеренно имели в виду, что ширина окна равна нулю? Ваш CRect имеет нулевую ширину. – rrirower

+0

я сделал. Большая часть материала, который я создаю, я даю CRect (0,0,0,0) и заполняет необходимое пространство. Я уверен, что это не проблема, так как я тестировал с другой шириной панели и ничего не менял +, она была видна до того, как я ее закрыл ... – Papsicle

+0

В [CodeProject] (http: // www. codeproject.com/Articles/493218/Understanding-CDockablePane). Я бы прочитал его, так что посмотри, не пропустил ли ты что-нибудь. – rrirower

ответ

0

Я нашел его ... кажется, MFC сохраняет все состояние того, как программа была оставлена. Поэтому, когда приложение запускается, отображается панель, но затем приложение загружает последнее состояние и скрывает панель. Я смог сделать его видимым снова, используя ту же строку:

MyPane.ShowPane(TRUE, FALSE, TRUE); 

на случай нажатия кнопки вместо того, чтобы создавать.

Существует также способ отключить автоматическое поведение «Загрузить последнее состояние», добавив следующее в конструктор CWinAppEx.

m_bSaveState = FALSE; 
Смежные вопросы