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

Параметры методов CFrameWnd::EnableDocking, CControlBar::EnableDocking, а также CFrameWnd::DockControlBar и CFrameWnd::FloatControlBar определяют границы окна, к которым можно пристыковать панель управления. Рассмотрим эти методы более подробно.

Метод EnableDocking класса CFrameWnd

Метод EnableDocking класса CFrameWnd разрешает пристыковку панели управления к определенным границам окна:

void EnableDocking(DWORD dwDockStyle);

Параметр dwDockStyle задает границы окна, к которым можно пристыковать панель управления. В качестве этого параметра надо использовать комбинации из флагов, перечисленных в следующей таблице.

ФлагОписание
CBRS_ALIGN_TOPПанель управления можно пристыковать к верхней границе окна
CBRS_ALIGN_BOTTOMПанель управления можно пристыковать к нижней границе окна
CBRS_ALIGN_LEFTПанель управления можно пристыковать к левой границе окна
CBRS_ALIGN_RIGHTПанель управления можно пристыковать к правой границе окна
CBRS_ALIGN_ANYПанель управления можно пристыковать к любой границе окна
Метод EnableDocking класса CControlBar

Чтобы панель управления можно было перемещать с одной стороны окна к другой, надо вызвать метод EnableDocking для окна и для каждой панели управления (если их несколько).

Формат вызова метода EnableDocking класса CFrameWnd соответствует формату метода EnableDocking класса CControlBar. Однако набор флагов, которые можно указать в качестве параметра dwStyle, расширен:

void EnableDocking(DWORD dwStyle);

ФлагОписание
CBRS_ALIGN_TOPПанель управления можно пристыковать к верхней границе окна
CBRS_ALIGN_BOTTOMПанель управления можно пристыковать к нижней границе окна
CBRS_ALIGN_LEFTПанель управления можно пристыковать к левой границе окна
CBRS_ALIGN_RIGHTПанель управления можно пристыковать к правой границе окна
CBRS_ALIGN_ANYПанель управления можно пристыковать к любой границе окна

Если ни один из флагов не установлен, и параметр dwStyle равен нулю, то данная панель управления не может быть пристыкована ни к одной границе окна. В этом случае надо вызвать метод CFrameWnd::FloatControlBar и панель управления появится в отдельном мини-окне.

Панель управления можно пристыковать только к тем границам окна, которые одновременно выбраны методами CFrameWnd::EnableDocking и CControlBar::EnableDocking.

Методы DockControlBar и FloatControlBar класса CFrameWnd

Чтобы пристыковать панель управления к границе окна, надо вызвать метод DockControlBar класса CFrameWnd :

void DockControlBar(CControlBar * pBar, UINT nDockBarID = 0, LPCRECT lpRect = NULL);

Панель управления, заданная параметром pBar, пристыковывается к границе окна, указанной параметром nDockBarID. В качестве nDockBarID можно использовать один или несколько флагов, перечисленных ниже.

ФлагОписание
AFX_IDW_DOCKBAR_TOPПанель управления присоединяется к верхней границе окна
AFX_IDW_DOCKBAR_BOTTOMПанель управления присоединяется к нижней границе окна
AFX_IDW_DOCKBAR_LEFTПанель управления присоединяется к левой границе окна
AFX_IDW_DOCKBAR_RIGHTПанель управления присоединяется к правой границе окна

Если параметр nDockBarID равен нулю, то панель управления присоединяется к любой стороне окна.

Перейти на страницу:

Похожие книги