Il controllo e bande
Lo scopo principale di un controllo Rebar è di 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 gripper, di bitmap, di etichetta di testo e di 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 a condizione che consentono 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 di 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 chiamare 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);