Controlli Rebar e bande
Lo scopo principale di un controllo Rebar consiste nel fungere da contenitore per le finestre figlio, i controlli comuni della finestra di dialogo, i menu, barre degli strumenti, e così via. Il contenimento è supportato dal concetto di una banda." Ogni banda del rebar può contenere qualsiasi combinazione di barra di pinza di ordini, di bitmap, di un'etichetta di testo e di una finestra figlio.
La classe CReBarCtrl ha molte funzioni membro che è possibile utilizzare per recuperare e modificare, informazioni per una banda specifica del rebar:
GetBandCount recupera il numero di bande correnti nel controllo Rebar.
GetBandInfo inizializza una struttura di REBARBANDINFO con informazioni dalla banda specificata. Esiste una funzione membro corrispondente di SetBandInfo.
GetRect recupera il rettangolo di delimitazione di una banda specificata.
GetRowCount recupera il numero di righe della banda in un controllo Rebar.
IDToIndex recupera l'indice di una banda specificata.
GetBandBorders recupera i bordi di una banda.
Oltre a modifica, molte funzioni membro vengono forniti che consente di eseguire sulle bande specifiche del rebar.
InsertBand e DeleteBand aggiungono e rimuovono le bande del rebar. MinimizeBand e MaximizeBand influiscono sulle dimensioni correnti di una banda specifica del rebar. MoveBand modifica l'indice di una banda specifica del rebar. ShowBand mostra o nasconde una banda del rebar dall'utente.
Nell'esempio seguente viene illustrata l'aggiunta della banda della barra degli strumenti (m_wndToolBar) a un controllo Rebar esistente (m_wndReBar). La banda viene descritta l'inizializzazione della struttura di rbi quindi chiamando la funzione membro di 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);