// Разрешаем пристывковывать панель управления Player к
// любой строке родительского окна
m_wndPlayerBar.EnableDocking(CBRS_ALIGN_ANY);
// Пристывковываем панель управления Player к
// родительскому окну
DockControlBar(&m_wndPlayerBar);
//============================================================
// Создаем и отображаем панель управления Style
//============================================================
// Создаем панель управления toolbar
if (!m_wndStyleBar.Create(this, WS_CHILD | WS_VISIBLE | CBRS_SIZE_FIXED | CBRS_TOP | CBRS_TOOLTIPS, ID_Style)) {
// Ошибка при создании панели управления
TRACE0("Failed to create toolbar\n");
return -1;
}
// Загружаем ресурс панели управления Style
if (!m_wndStyleBar.LoadToolBar(IDR_STYLE)) {
// Ошибка при загрузке ресурса панели управления
TRACE0("Failed to load toolbar\n");
return -1;
}
// Устанавливаем заголовок панели управления Style
m_wndStyleBar.SetWindowText("Style");
// Запрещаем пристывковывать панель управления Player к
// родительскому окну
m_wndStyleBar.EnableDocking(0);
// Устанавливаем для кнопки ID_SUBSCRIPT стиль TBBS_WRAPPED
nIndex = m_wndStyleBar.CommandToIndex(ID_SUBSCRIPT);
nBarStyle = m_wndStyleBar.GetButtonStyle(nIndex) | TBBS_WRAPPED;
m_wndStyleBar.SetButtonStyle(nIndex, nBarStyle);
// Устанавливаем для кнопки ID_TEXT_JUSTIFY стиль
// TBBS_WRAPPED
nIndex = m_wndStyleBar.CommandToIndex(ID_TEXT_JUSTIFY);
nBarStyle = m_wndStyleBar.GetButtonStyle(nIndex) | TBBS_WRAPPED;
m_wndStyleBar.SetButtonStyle(nIndex, nBarStyle);
// Отображаем панель управления Style в мини-окне.
// Начальные координаты панели управления определяются
// значением объекта pointStyleBar класса CPoint
CPoint pointStyleBar(100, 100);
FloatControlBar(&m_wndStyleBar, pointStyleBar);
//============================================================
// Создаем и отображаем панель управления Extended
//============================================================
// Создаем панель управления Extended
if (!m_wndExtendedBar.Create(this, WS_CHILD | WS_VISIBLE | CBRS_SIZE_DYNAMIC | CBRS_TOP | CBRS_TOOLTIPS, ID_Extended)) {
// Ошибка при создании панели управления
TRACE0("Failed to create toolbar\n");
return -1;
}
// Загружаем ресурс панели управления Extended
if (!m_wndExtendedBar.LoadToolBar(IDR_EXTENDED)) {
// Ошибка при загрузке ресурса панели управления
TRACE0("Failed to load toolbar\n");
return -1;
}
// Устанавливаем заголовок панели управления Extended
m_wndExtendedBar.SetWindowText("Extended");
// Увеличиваем размер первого разделителя.
// Этот разделитель имеет индекс 2
m_wndExtendedBar.SetButtonInfo(2, IDW_EDIT, TBBS_SEPARATOR, 130);
// Определяем координаты прямоугольной области панели
// управления, занимаемой разделителем
CRect rectEdit;
m_wndExtendedBar.GetItemRect(2, &rectEdit);
// Делаем отступ с левой и правой стороны
rectEdit.left += 6;
rectEdit.right -= 6;
// Размещаем на панели управления Extended, в области
// rectEdit однострочный текстовый редактор
if (!m_wndExtendedBar.m_edit.Create(WS_CHILD | ES_AUTOHSCROLL|WS_VISIBLE|WS_TABSTOP|WS_BORDER, rectEdit, &m_wndExtendedBar, IDW_EDIT)) {
// Ошибка при создании текстового редактора
TRACE0("Failed to create edit-box\n");
return FALSE;
}
// Увеличиваем размер второго разделителя.
// Этот разделитель имеет индекс 4
m_wndExtendedBar.SetButtonInfo(4, IDW_COMBO, TBBS_SEPARATOR, 150);
// Определяем координаты прямоугольной области панели
// управления, занимаемой разделителем
CRect rectComboBox;
m_wndExtendedBar.GetItemRect(4, &rectComboBox);
// Делаем отступ с левой и правой стороны
rectComboBox.left += 6;
rectComboBox.right -= 6;
// Увеличиваем высоту прямоугольной области, чтобы в ней
// можно было разместить список combo-box
rectComboBox.bottom = rectComboBox.top + 80;
// Размещаем на панели управления Extended, в области
// rectComboBox список combo-box
if (!m_wndExtendedBar.m_combo_box.Create(CBS_DROPDOWN | WS_CHILD | WS_VISIBLE | WS_VSCROLL | ES_AUTOHSCROLL | CBS_DISABLENOSCROLL, rectComboBox, &m_wndExtendedBar, IDW_COMBO)) {
// Ошибка при создании списка
TRACE0("Failed to create combo-box\n");
return FALSE;
}
// Добавляем три строки в список m_combo_box
m_wndExtendedBar.m_combo_box.AddString("One");
m_wndExtendedBar.m_combo_box.AddString("Two");
m_wndExtendedBar.m_combo_box.AddString("Third");
// Разрешаем пристывковывать панель управления Extended к
// любой из строн родительского окна
m_wndExtendedBar.EnableDocking(CBRS_ALIGN_ANY);
// Пристывковываем панель управления Extended к
// родительскому окну
DockControlBar(&m_wndExtendedBar);
return 0;
}
Ресурсы приложения MultiBar
Создайте новый файл ресурсов и включите его в проект под именем MultiBar.rc. Теперь надо создать три панели управления toolbar и включить их в файл ресурсов. Изображения кнопок панелей управления вы можете нарисовать самостоятельно или скопировать их из файла ресурсов Common.res, поставляемого вместе с Microsoft Visual C++. Более подробная информация о файле Common.res представлена в разделе “Ресурсы Microsoft”.
Читать дальше