MFC: разрешить стыковку с основным видом

В Visual Studio вы можете прикрепить произвольные панели к основному виду в центре окна:введите здесь описание изображения

На изображении выше панель списка ошибок прикреплена к основному виду.

Я хотел бы сделать это с помощью CDockablePanes в MFC. Однако похоже, что по умолчанию стыковка панелей с основным видом не разрешена. Возможно ли это с МФЦ? Если да, то как это делается?


person josmith42    schedule 08.01.2016    source источник


Ответы (1)


Панели обычно прикрепляются к CMainFrame, и их можно пристыковать над основным видом.

Если вам нужно закрепить их внутри представления, их следует создать (и закрепить) в файле CChildFrame.

Обязательно используйте .EnableDocking(CBRS_ALIGN_ANY); и EnableDocking(CBRS_ALIGN_ANY);


Если вы имеете в виду преобразование закрепляемой панели в документ с вкладками, щелкните правой кнопкой мыши заголовок панели и выберите «Tabbed Document».

Также ознакомьтесь с CDockablePane::ConvertToTabbedDocument и m_bCanCovertControlBarToMDIChild.

person Danny_ds    schedule 08.01.2016
comment
На каких классах мне нужно вызывать EnableDocking()? - person josmith42; 08.01.2016
comment
@ josmith42 - EnableDocking() вызывается в CMainFrame::OnCreate() или в CChildFrame, если вы хотите, чтобы панели были там. - person Danny_ds; 08.01.2016
comment
Похоже, m_bCanConvertControlBarToMDIChild — это то, что я ищу. Спасибо! - person josmith42; 08.01.2016
comment
@josmith42 - Нет проблем. Рад помочь. - person Danny_ds; 08.01.2016