Contrôles rebar et bandes
L’objectif principal d’un contrôle de barre de rebar est d’agir en tant que conteneur pour les fenêtres enfants, les contrôles de dialogue courants, les menus, les barres d’outils, et ainsi de suite. Ce confinement est pris en charge par le concept de « bande ». Chaque bande de barres de rebar peut contenir n’importe quelle combinaison d’une barre de grippe, d’une bitmap, d’une étiquette de texte et d’une fenêtre enfant.
La classe CReBarCtrl
a de nombreuses fonctions membres que vous pouvez utiliser pour récupérer et manipuler des informations pour une bande de barres d’accès spécifique :
GetBandCount Récupère le nombre de bandes actuelles dans le contrôle de barre de rebar.
GetBandInfo Initialise une structure REBARBANDINFO avec des informations de la bande spécifiée. Il existe une fonction membre SetBandInfo correspondante.
GetRect Récupère le rectangle englobant d’une bande spécifiée.
GetRowCount Récupère le nombre de lignes de bande dans un contrôle de barre de 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 fournies qui vous permettent d’opérer sur des bandes de barres de rebar spécifiques.
InsertBand et DeleteBand ajoutent et suppriment des bandes de barres. MinimizeBand et MaximizeBand affectent la taille actuelle d’une bande de barres spécifiques. MoveBand modifie l’index d’une bande de barres d’accès spécifique. ShowBand affiche ou masque une bande de barres de l’utilisateur.
L’exemple suivant illustre l’ajout d’une bande de barres d’outils (m_wndToolBar) à un contrôle de barre d’outils existant (m_wndReBar). La bande est décrite en initialisant la rbi
structure, puis en appelant la InsertBand
fonction membre :
//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);