Элементы управления и зоны главной панели
Основная цель элемента управления перекладиной — выступать в качестве контейнера для дочерних окон, общих диалоговых элементов управления, меню, панелей инструментов и т. д. Это сдерживание поддерживается понятием "band". Каждая полоса перевязки может содержать любое сочетание панели захвата, растрового изображения, текстовой метки и дочернего окна.
Класс CReBarCtrl
имеет множество функций-членов, которые можно использовать для получения и управления данными для определенной полосы перекладки:
GetBandCount извлекает количество текущих полос в элементе управления перебары.
GetBandInfo Инициализирует структуру REBARBANDINFO с информацией из указанной полосы. Существует соответствующая функция-член SetBandInfo .
GetRect Извлекает ограничивающий прямоугольник указанной полосы.
GetRowCount извлекает количество строк полосы в элементе управления перебора.
IDToIndex Извлекает индекс указанной полосы.
GetBandBorders извлекает границы полосы.
Помимо манипуляции, предоставляются несколько функций-членов, которые позволяют работать с определенными полосами перекладок.
InsertBand и DeleteBand добавляют и удаляют полосы перестроек . Свертывая полоса и максимальная полоса влияют на текущий размер определенной полосы перекладки. MoveBand изменяет индекс определенной полосы перемещений . ShowBand отображает или скрывает полосу перебарки от пользователя.
В следующем примере показано добавление панели инструментов (m_wndToolBar) в существующий элемент управления перебара (m_wndReBar). Группа описывается путем инициализации rbi
структуры и вызова InsertBand
функции-члена:
//load bitmap for toolbar background
m_RebarBitmap.LoadBitmap(IDB_BITMAP1);
//create a toolbar band
m_Toolbar1.Create(this, TBSTYLE_TRANSPARENT | TBSTYLE_FLAT);
m_Toolbar1.LoadToolBar(IDR_MAINFRAME);
REBARBANDINFO rbi = { 0 };
rbi.cbSize = sizeof(REBARBANDINFO);
rbi.fMask = RBBIM_BACKGROUND | RBBIM_CHILD | RBBIM_CHILDSIZE |
RBBIM_STYLE | RBBIM_TEXT;
rbi.fStyle = RBBS_GRIPPERALWAYS;
rbi.cxMinChild = 300;
rbi.cyMinChild = 50;
rbi.lpText = _T("Band #1");
rbi.cch = 7;
rbi.cx = 300;
rbi.hbmBack = (HBITMAP)m_RebarBitmap;
rbi.hwndChild = (HWND)m_Toolbar1;
m_Rebar.GetReBarCtrl().InsertBand(0, &rbi);