CMFCReBar 类

CMFCReBar 对象是提供 rebar 控件的布局、持久性和状态信息的控件条。 有关详细信息,请参阅所安装的 Visual Studio 的 C\atlmfc\src\mfc 文件夹中的源代码。

语法

class CMFCReBar : public CPane

成员

公共方法

名称 描述
CMFCReBar::AddBar 向 rebar 添加一个区段。
CMFCReBar::CalcFixedLayout (替代 CBasePane::CalcFixedLayout。)
CMFCReBar::CanFloat (替代 CBasePane::CanFloat。)
CMFCReBar::Create 创建 rebar 控件并将其附加到 CMFCReBar 对象。
CMFCReBar::EnableDocking (替代 CBasePane::EnableDocking。)
CMFCReBar::GetReBarBandInfoSize
CMFCReBar::GetReBarCtrl 提供对基础 CReBarCtrl 公共控件的直接访问。
CMFCReBar::OnShowControlBarMenu (替代 CPane::OnShowControlBarMenu。)
CMFCReBar::OnToolHitTest (替代 CWnd::OnToolHitTest。)
CMFCReBar::OnUpdateCmdUI (替代 CBasePane::OnUpdateCmdUI。)
CMFCReBar::SetPaneAlignment (替代 CBasePane::SetPaneAlignment。)

注解

CMFCReBar 对象可包含各种子窗口。 包括编辑框、工具栏和列表框。 你可以通过编程方式调整 rebar 的大小,或者用户可以通过拖动 rebar 的控制手柄条来手动调整 rebar 的大小。 你还可以将 rebar 对象的背景设置为所选的位图。

rebar 对象的行为类似于工具栏对象。 一个 rebar 控件可包含一个或多个区段,每个区段都有控制手柄条、位图、文本标签和子窗口。

示例

下面的示例演示了如何使用 CMFCReBar 类中的各种方法。 该示例演示如何创建 rebar 控件并向它添加区段。 区段充当内部工具栏。 此代码片段属于 Rebar Test 示例

CMFCReBar m_wndReBar;
// Each rebar pane will ocupy its own row:
DWORD dwStyle = RBBS_GRIPPERALWAYS | RBBS_FIXEDBMP | RBBS_BREAK;
// CMFCMenuBar m_wndMenuBar
// CMFCToolBar m_wndToolBar
if (!m_wndReBar.Create(this) ||
    !m_wndReBar.AddBar(&m_wndMenuBar) ||
    !m_wndReBar.AddBar(&m_wndToolBar, NULL, NULL, dwStyle))
{
   TRACE0("Failed to create rebar\n");
   return -1; // fail to create
}

继承层次结构

CObject
CCmdTarget
 └ CWnd
  └ CBasePane
   └ CPane
    └ CMFCReBar

要求

头文件:afxRebar.h

CMFCReBar::AddBar

向 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
[in, out] 指向要插入到 rebar 中的子窗口的指针。 引用的对象必须具有 WS_CHILD 窗口样式

pszText
[in] 指定要在 rebar 上显示的文本。 该文本不是子窗口的一部分。 而是显示在 rebar 本身上。

pbmp
[in, out] 指定要在 rebar 背景上显示的位图。

dwStyle
[in] 包含要应用于区段的样式。 有关区段样式的完整列表,请参阅 Windows SDK 文档中 REBARBANDINFO 结构中的 fStyle 的说明。

clrFore
[in] 表示 rebar 的前景色。

clrBack
[in] 表示 rebar 的背景色。

返回值

如果成功地向 rebar 添加了区段,返回 TRUE;否则返回 FALSE。

CMFCReBar::Create

创建 rebar 控件并将其附加到 CMFCReBar 对象。

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
[in, out] 指向此 rebar 控件的父窗口的指针。

dwCtrlStyle
[in] 指定 rebar 控件的样式。 默认的样式值为 RBS_BANDBORDERS,它显示分隔 rebar 控件上相邻区段的窄线。 有关有效样式的列表,请参阅 Windows SDK 文档中的 Rebar 控件样式

dwStyle
[in] rebar 控件的窗口样式。 有关有效样式的列表,请参阅窗口样式

nID
[in] rebar 的子窗口 ID。

返回值

如果成功地创建了 rebar,返回 TRUE;否则返回 FALSE。

注解

CMFCReBar::GetReBarCtrl

提供对 CReBarCtrlCMFCReBar 对象的基础公共控件)的直接访问。

CReBarCtrl& GetReBarCtrl() const;

返回值

对基础 CReBarCtrl 对象的引用。

注解

调用此方法可在自定义 rebar 时利用 Windows rebar 公共控件功能。

CMFCReBar::CalcFixedLayout

virtual CSize CalcFixedLayout(
    BOOL bStretch,
    BOOL bHorz);

参数

[in] bStretch
[in] bHorz

返回值

备注

CMFCReBar::CanFloat

virtual BOOL CanFloat() const;

返回值

注解

CMFCReBar::EnableDocking

void EnableDocking(DWORD dwDockStyle);

参数

[in] dwDockStyle

注解

CMFCReBar::GetReBarBandInfoSize

UINT GetReBarBandInfoSize() const;

返回值

备注

CMFCReBar::OnShowControlBarMenu

virtual BOOL OnShowControlBarMenu(CPoint);

参数

[in] CPoint

返回值

备注

CMFCReBar::OnToolHitTest

virtual INT_PTR OnToolHitTest(
    CPoint point,
    TOOLINFO* pTI) const;

参数

[in] point
[in] pTI

返回值

备注

CMFCReBar::OnUpdateCmdUI

virtual void OnUpdateCmdUI(
    CFrameWnd* pTarget,
    BOOL bDisableIfNoHndler);

参数

[in] pTarget
[in] bDisableIfNoHndler

备注

CMFCReBar::SetPaneAlignment

virtual void SetPaneAlignment(DWORD dwAlignment);

参数

[in] dwAlignment

注解

另请参阅

层次结构图

CReBarCtrl 类
CPane 类