Поделиться через


Элемент закрепление панели инструментов и перемещаемые

Библиотеки 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.

a7022c58.collapse_all(ru-ru,VS.110).gifДополнительные сведения

См. также

Основные понятия

Реализация панели инструментов MFC