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
提供对 CReBarCtrl
(CMFCReBar
对象的基础公共控件)的直接访问。
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