Элементы управления и зоны главной панели
Основное назначение элемента управления "Главная панель" действовать как контейнер для дочерних элементов управления windows forms, стандартного диалогового окна печати, меню, панели инструментов и т д Такая вложенность поддерживается понятием «полосы». Каждая полоса главной панели может содержать любую комбинацию панель захвата, растровое изображение, метка текстовой подписи и дочернее окно.
Класс CReBarCtrl имеет много функций-членов, которые можно использовать для получения и управления, сведения о конкретной полосы главной панели:
GetBandCount Извлекает число текущих полос в элементе управления "Главная панель".
GetBandInfo Инициализирует структуру REBARBANDINFO со сведениями из указанной полосы. Соответствующую функцию-член SetBandInfo.
GetRect Возвращает ограничивающий прямоугольник определенной полосы.
GetRowCount Извлекает число строк полосы в элементе управления "Главная панель".
IDToIndex Извлекает индекс указанной полосы.
GetBandBorders Возвращает границы полосы.
Помимо манипуляций нескольких функций-членов, при условии, что разрешение, чтобы работать с конкретными полосы главной панели.
InsertBandDeleteBand и добавлять и удалять полосы главной панели. MinimizeBandMaximizeBand и влияет текущий размер полосы определенной главной панели. 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);