Contrôles et bandes rebar
L'objectif principal d'un contrôle rebar est d'agir comme un conteneur pour les fenêtres enfants, contrôles de boîte de dialogue courantes, menus, barres d'outils, et ainsi de suite.Cette relation contenant-contenu est prise en charge par le concept d'une « bande. » Chaque bande rebar peut contenir n'importe quelle combinaison d'une barre à pinces, d'une bitmap, d'une étiquette de texte, et d'une fenêtre enfant.
La classe CReBarCtrl contient de nombreuses fonctions membres que vous pouvez utiliser pour récupérer, et manipuler, les informations relatives à une bande rebar spécifique :
GetBandCount récupère le nombre de bandes présente dans le contrôle rebar.
GetBandInfo initialise une structure de REBARBANDINFO avec les informations de la bande spécifiée.Il existe une fonction membre correspondante de SetBandInfo .
GetRect extrait le rectangle englobant d'une bande spécifiée.
GetRowCount récupère le nombre de lignes de bande dans un contrôle rebar.
IDToIndex récupère l'index d'une bande spécifiée.
GetBandBorders récupère les bordures d'une bande.
En plus de la manipulation, plusieurs fonctions membres sont à condition que vous permet de traiter les bandes rebar spécifiques.
InsertBand et DeleteBand ajoutent et suppriment des bandes rebar.MinimizeBand et MaximizeBand affectent la taille actuelle d'une bande rebar spécifique.MoveBand modifie l'index d'une bande rebar spécifique.ShowBand affiche ou masque une bande rebar de l'utilisateur.
L'exemple suivant montre comment ajouter une bande de barre d'outils (m_wndToolBar) à un contrôle rebar existant (m_wndReBar).La bande est décrite en initialisant la structure d' rbi puis en appelant la fonction membre d' 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);