Formanty paska pomocniczego i paski
Głównym celem kontrolki paska pomocniczego jest działanie jako kontener dla okien podrzędnych, typowych kontrolek okien dialogowych, menu, pasków narzędzi itd. To zawieranie jest obsługiwane przez koncepcję "przedziału". Każdy pasek paskowy może zawierać dowolną kombinację paska uchwytu, mapy bitowej, etykiety tekstowej i okna podrzędnego.
Klasa CReBarCtrl
ma wiele funkcji składowych, których można użyć do pobierania i manipulowania informacjami o określonym pasmie paska pomocniczego:
GetBandCount pobiera liczbę bieżących pasm w kontrolce paska pomocniczego.
GetBandInfo Inicjuje strukturę REBARBANDINFO z informacjami z określonego przedziału. Istnieje odpowiednia funkcja składowa SetBandInfo .
GetRect pobiera prostokąt ograniczenia określonego przedziału.
GetRowCount pobiera liczbę wierszy pasm w kontrolce paska pomocniczego.
IDToIndex pobiera indeks określonego przedziału.
GetBandBorders pobiera obramowania przedziału.
Oprócz manipulacji dostępnych jest kilka funkcji składowych, które umożliwiają działanie na określonych paskach paska.
InsertBand i DeleteBand dodaj i usuń pasma paska pomocniczego. MinimalBand i MaximizeBand wpływają na bieżący rozmiar określonego pasa paska. MoveBand zmienia indeks określonego pasa paska pomocniczego. Program ShowBand pokazuje lub ukrywa pasek paska od użytkownika.
W poniższym przykładzie pokazano dodawanie paska narzędzi (m_wndToolBar) do istniejącej kontrolki paska narzędzi (m_wndReBar). Zespół jest opisany przez zainicjowanie rbi
struktury, a następnie wywołanie funkcji składowej 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);