Controles rebar e bandas
A principal finalidade de um controle rebar é atuar como um contêiner para janelas filho, controles de diálogo comuns, menus, barras de ferramentas etc. Essa independência é compatível com o conceito de uma "banda". Cada banda rebar pode conter qualquer combinação de uma barra de pinça, um bitmap, um rótulo de texto e uma janela filho.
A classe CReBarCtrl
tem muitas funções de membro que você pode usar para recuperar e manipular informações para uma banda rebar específica:
GetBandCount Recupera o número de faixas atuais no controle rebar.
GetBandInfo Inicializa uma estrutura REBARBANDINFO com informações da banda especificada. Há uma função de membro SetBandInfo correspondente.
GetRect Recupera o retângulo delimitador de uma banda especificada.
GetRowCount Recupera o número de linhas de banda em um controle rebar.
IDToIndex Recupera o índice de uma banda especificada.
GetBandBorders Recupera as bordas de uma banda.
Além da manipulação, são fornecidas várias funções de membro que permitem que você opere em faixas rebar específicas.
InsertBand e DeleteBand adicionam e removem bandas rebar. MinimizeBand e MaximizeBand afetam o tamanho atual de uma banda rebar específica. MoveBand altera o índice de uma banda rebar específica. ShowBand mostra ou oculta uma banda rebar do usuário.
O exemplo a seguir demonstra a adição de uma banda da barra de ferramentas (m_wndToolBar) a um controle rebar (m_wndReBar). A banda é descrita inicializando a estrutura rbi
e chamando a função de membro 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);