Обновление до MFC Feature Pack
У меня есть несколько панелей инструментов / меню, полученных из панели управления размерами кода, которые я хотел бы использовать с CFrameWndEx
но я не могу найти простой в использовании ShowPane
функции с CControlBar
производные объекты.
Например, с CFrameWnd
:
ShowControlBar(&m_ctlDimBar, m_ctlDimBar.IsVisible(), FALSE);
Необходимо заменить при использовании CFrameWndEx
, с:
ShowPane(&m_ctlDimBar, m_ctlDimBar.IsVisible(), FALSE, TRUE);
Пока не могу использовать m_ctlDimBar
как есть, потому что это CControlBar
производный объект, а не CBasePane
объект. Есть ли простой способ обойти несовместимость без необходимости переписывать код по ссылке?
1 ответ
CControlBar - это старый мир панелей инструментов, когда вы используете новый стиль MFC, вы должны использовать все компоненты из классов CMFC. К сожалению, не все новые классы начинаются с CMFC.
Поэтому, если у вас есть CControlBar с некоторым содержимым, которое должно быть закреплено, используйте CDockingPane сейчас.
CControlBar был старым базовым классом для CToolBar и других.
Новые классы создаются следующим образом: CMFCToolBar -
CPane - это ближайший базовый класс для вас, а CDockingPane - это класс окна, который позволяет вам размещать собственный контент.
Самый простой способ узнать, как работает этот новый продукт, - создать пример приложения с помощью мастера. Чем взглянуть на базовые классы, как реализованы разные виды окон. Описание ужасно и почти не существует. Но использование кода не так сложно.;)
PS: После того, как я написал несколько комментариев, я попробую ответить.