Обновление до MFC Feature Pack

У меня есть несколько панелей инструментов / Menubars, полученных из кода Панель управления размерами что я хотел бы иметь возможность использовать с CFrameWndEx но я не могу найти простой в использовании ShowPane функции с CControlBar производные объекты.

Например, с CFrameWnd:

ShowControlBar(&m_ctlDimBar, m_ctlDimBar.IsVisible(), FALSE);

Необходимо заменить при использовании CFrameWndEx, с:

ShowPane(&m_ctlDimBar, m_ctlDimBar.IsVisible(), FALSE, TRUE);

Пока не могу использовать m_ctlDimBar как есть, потому что это CControlBar производный объект, а не CBasePane объект. Есть ли простой способ обойти несовместимость без необходимости переписывать код по ссылке?

0

Решение

CControlBar — это старый мир панелей инструментов, когда вы используете новый стиль MFC, вы должны использовать все компоненты из классов CMFC. К сожалению, не все новые классы начинаются с CMFC.

Так что если у вас есть CControlBar с некоторым содержимым, которое должно быть закреплено, используйте CDockingPane сейчас.

CControlBar был старым базовым классом для CToolBar и других.

Новые классы создаются следующим образом: CMFCToolBar -< CMFCBaseToolBar -> CPane -> CWnd

CPane — ближайший базовый класс для вас, а CDockingPane — класс окна.
это позволяет вам размещать свой собственный контент.

Самый простой способ узнать, как работает этот новый продукт, — создать пример приложения с помощью мастера. Чем смотреть на базовые классы, как реализованы разные виды окон. Описание ужасно и почти не существует. Но использование кода не так сложно. 😉

PS: После того, как я написал несколько комментариев, я попробую ответить.

1

Другие решения


По вопросам рекламы [email protected]