CReBar Class
A control bar that provides layout, persistence, and state information for rebar controls.
class CReBar : public CControlBar
Name | Description |
---|---|
CReBar::AddBar | Adds a band to a rebar. |
CReBar::Create | Creates the rebar control and attaches it to the CReBar object. |
CReBar::GetReBarCtrl | Allows direct access to the underlying common control. |
A rebar object can contain a variety of child windows, usually other controls, including edit boxes, toolbars, and list boxes. A rebar object can display its child windows over a specified bitmap. Your application can automatically resize the rebar, or the user can manually resize the rebar by clicking or dragging its gripper bar.
A rebar object behaves similarly to a toolbar object. A rebar uses the click-and-drag mechanism to resize its bands. A rebar control can contain one or more bands, with each band having any combination of a gripper bar, a bitmap, a text label, and a child window. However, bands cannot contain more than one child window.
CReBar
uses the CReBarCtrl class to provide its implementation. You can access the rebar control through GetReBarCtrl to take advantage of the control's customization options. For more information about rebar controls, see CReBarCtrl
. For more information about using rebar controls, see Using CReBarCtrl.
Caution
Rebar and rebar control objects do not support MFC control bar docking. If CRebar::EnableDocking
is called, your application will assert.
CReBar
Header: afxext.h
Call this member function to add a band to the rebar.
BOOL AddBar(
CWnd* pBar,
LPCTSTR pszText = NULL,
CBitmap* pbmp = NULL,
DWORD dwStyle = RBBS_GRIPPERALWAYS | RBBS_FIXEDBMP);
BOOL AddBar(
CWnd* pBar,
COLORREF clrFore,
COLORREF clrBack,
LPCTSTR pszText = NULL,
DWORD dwStyle = RBBS_GRIPPERALWAYS);
pBar
A pointer to a CWnd
object that is the child window to be inserted into the rebar. The referenced object must have a WS_CHILD.
lpszText
A pointer to a string containing the text to appear on the rebar. NULL by default. The text contained in lpszText is not part of the child window; it is on the rebar itself.
pbmp
A pointer to a CBitmap
object to be displayed on the rebar background. NULL by default.
dwStyle
A DWORD containing the style to apply to the rebar. See the fStyle
function description in the Win32 structure REBARBANDINFO for a complete list of band styles.
clrFore
A COLORREF value that represents the foreground color of the rebar.
clrBack
A COLORREF value that represents the background color of the rebar.
Nonzero if successful; otherwise 0.
// Define a CRebar in your class definition,
// such as: CReBar m_wndReBar;
m_wndReBar.Create(this);
m_wndDlgBar.Create(this, IDD_DIALOGBAR, CBRS_ALIGN_TOP,
IDD_DIALOGBAR);
m_wndReBar.AddBar(&m_wndDlgBar);
Call this member function to create a rebar.
virtual BOOL Create(
CWnd* pParentWnd,
DWORD dwCtrlStyle = RBS_BANDBORDERS,
DWORD dwStyle = WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_TOP,
UINT nID = AFX_IDW_REBAR);
pParentWnd
Pointer to the CWnd
object whose Windows window is the parent of the status bar. Normally your frame window.
dwCtrlStyle
The rebar control style. By default, RBS_BANDBORDERS, which displays narrow lines to separate adjacent bands within the rebar control. See Rebar Control Styles in the Windows SDK for a list of styles.
dwStyle
The rebar window styles.
nID
The rebar's child-window ID.
Nonzero if successful; otherwise 0.
See the example for CReBar::AddBar.
This member function allows direct access to the underlying common control.
CReBarCtrl& GetReBarCtrl() const;
A reference to a CReBarCtrl object.
Call this member function to take advantage of the functionality of the Windows rebar common control in customizing your rebar. When you call GetReBarCtrl
, it returns a reference object to the CReBarCtrl
object so you can use either set of member functions.
For more information about using CReBarCtrl
to customize your rebar, see Using CReBarCtrl.
CReBarCtrl &refReBarCtrl = m_wndReBar.GetReBarCtrl();
UINT nBandCount = refReBarCtrl.GetBandCount();
CString msg;
msg.Format(_T("Band Count is: %u"), nBandCount);
AfxMessageBox(msg);