Элемент закрепление панели инструментов и перемещаемые
Библиотеки Microsoft Foundation Class поддерживает закрепляемой панели инструментов.Закрепляемая панель инструментов можно вложить или закреплено в любой части родительского окна или него может быть удален или плыто наконец, в собственное окно области.В этой статье описывается, как использовать закрепляемой панели инструментов в приложении.
При использовании мастера приложений для создания основу приложения, будет предложено выбрать, следует ли закрепляемой панели инструментов.По умолчанию мастер приложений создает код, выполняющий 3 действия, необходимой для размещения закрепляемой панели инструментов в приложении:
Включение закрепления в фрейме окна.
Включение закрепления для панели инструментов.
Закрепить панель инструментов (в фрейме окна).
Если любая из этих шагов отсутствуют, то приложение будет отображать панели инструментов стандартная.Последние два действия необходимо выполнить для каждой закрепляемой панели инструментов в приложении.
Покрытые другие разделы этой статьи:
Плавающее панель инструментов
Динамическое изменение размеров панели инструментов
Установка позиции использования программы-оболочек для панели инструментов фикчированн-стиля
MFC см. в образце DOCKTOOL общие примеры.
Включение элемент закрепление в фрейме окна
Чтобы закрепить панель инструментов в фрейме окна, окно фрейма (или назначение) необходимо включить, чтобы разрешить элемент закрепление.Это делается с помощью функции CFrameWnd::EnableDocking, которая принимает один параметр DWORD который задается отображение бит стиля, сторон фрейма окна принимает закрепления.Если панель инструментов должна быть закрепленным и несколько стороны, что он может быть закреплено в стороны, отображаемые в параметре, переданного в EnableDocking используемые в следующем порядке: сверху, снизу, слева и справа.Если требуется возможность закрепление панели элементов управления в любом месте, передайте CBRS_ALIGN_ANY к EnableDocking.
Включение элемент закрепление в панели инструментов
После того, как был подготовлен назначение для закрепления необходимо подготовить панель инструментов (источник) аналогичным образом.Вызов CControlBar::EnableDocking для каждой панели инструментов следует закрепить, указывая на стороне назначения, к которым должна закрепляться панель инструментов.Если ни одна из сторон, определенных в вызов для сопоставления CControlBar::EnableDocking включенные стороны, закрепление в фрейме окна панель инструментов не могут закрепляться — они плывут.После того как панель инструментов стала плавающей, она останется плавающей и не сможет закрепляться в фрейме окна.
Если в силу, необходимо постоянно перемещаемая панель инструментов, вызывает EnableDocking с параметром 0.Затем вызовите CFrameWnd::FloatControlBar.Панель инструментов остается перемещаемым, постоянно неспособным для закрепления в любом месте.
Закрепить панель инструментов
Платформа вызывает функцию CFrameWnd::DockControlBar, когда пользователь пытается удалить панель инструментов на стороне окна фрейма, позволяющее элемент закрепление.
Кроме того, можно вызывать эту функцию в любое время, чтобы закрепить панель элементов управления в фрейме окна.Это обычно делается во время инициализации.Несколько можно закрепить панель инструментов в определенной части окна фрейма.
Плавающее панель инструментов
Наконец удаление закрепляемая панель инструментов из окна фрейма вызывает плавающее панель инструментов.Вызов CFrameWnd::FloatControlBar для этого.Укажите панель инструментов для плыть, где он должен быть помещен и стиль выравнивания, который определяет, является ли перемещаемая панель инструментов горизонтальна или вертикальна.
Платформа вызывает данную функцию, если пользователь перетаскивает панель инструментов с его состыкованного расположения и удаляет его в расположении, где закрепление не включен.Это может быть в любом месте внутри или вне окна фрейма.Как и в случае с DockControlBar можно также вызывать эту функцию при инициализации.
Реализация MFC закрепляемых панелей инструментов не предоставляет некоторые расширенных функций, содержащихся в некоторых приложениях, поддерживающих закрепляемой панели инструментов.Функции как настраиваемые панели инструментов не предусмотрены.
Динамическое изменение размеров панели инструментов
В Visual C++ версии 4.0, можно сделать возможной для пользователей приложения размер перемещаемые панели инструментов динамически.Как правило, панель инструментов содержит долго, линейную форму, показанную по горизонтали.Но можно изменить его форма и ориентация панели инструментов.Например, когда пользователь закрепит панель инструментов с одной из сторон фрейма окна вертикали, форма изменяет вертикальную структуру.Также возможно переформовать панели инструментов в прямоугольник с несколькими строками кнопок.
Обеспечиваются следующие возможности.
Определите динамическую изменение размеров в качестве характеристикой панели инструментов.
Укажите fixed изменение размеров в качестве характеристикой панели инструментов.
Чтобы обеспечить такую поддержку, существует 2 новых стилей панели инструментов для использования в вызовах к функции-члену CToolBar::Create.К ним относятся:
Панель элементов управления CBRS_SIZE_DYNAMIC динамическая.
Панель элементов управления CBRS_SIZE_FIXED исправить.
Стиль размера динамического позволяет конкретному пользователю размер панели инструментов в состоянии, когда элемент, но не располагается во время его закрепляется.Панель инструментов «создает программу-оболочку», где требуется изменить форму как перетаскивания пользователя его границы.
Стиль зафиксированный размером сохраняет состояние использования программы-оболочек панели инструментов, фиксируя положение кнопок в каждом столбце.Пользователь приложения не сможет изменить форму панели инструментов.Использование программы-оболочки панели инструментов на местах, обозначенных как расположения разделителей между кнопками.Она поддерживает эту форму, закрепленной панели инструментов или перемещаемый.Эффект фиксированная палитра с несколькими столбцами кнопок.
Можно также использовать CToolBar::GetButtonStyle для возвращения состояние и стиль кнопок в панели инструментов.Стиль кнопки определяет, как кнопка появляется, и как оно отвечает на ввод пользователя; состояние указывает, следует ли создавать в программу-оболочкуом состоянии.
Установка положения использования программы-оболочек для панели инструментов Фикчированн-Стиля
Для панели инструментов с учетом фиксации размером обозначается индексами кнопки панели инструментов, на которых панели инструментов создает программу-оболочку.В следующем коде показано, как это сделать в переопределенном методе OnCreate главного фрейма окна:
// Get the style of the first button separator
UINT nStyle = m_wndToolBar.GetButtonStyle(3);
// Augment the state for wrapping
nStyle |= TBBS_WRAPPED;
m_wndToolBar.SetButtonStyle(3, nStyle);
// Do the same for other wrap locations ...
// Set the bar style to size fixed
m_wndToolBar.SetBarStyle(m_wndToolBar.GetBarStyle() |
CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_FIXED);
// Call docking/floating functions as needed ...
Образец MFC DOCKTOOL общие показано использование функций-членов классов CControlBar и CToolBar для управления динамический макет панели инструментов.См. файл EDITBAR.CPP в DOCKTOOL.