CReBarCtrl 类

封装 Rebar 控件的功能,此控件是一个子窗口容器。

语法

class CReBarCtrl : public CWnd

成员

公共构造函数

名称 描述
CReBarCtrl::CReBarCtrl 构造 CReBarCtrl 对象。

公共方法

名称 描述
CReBarCtrl::BeginDrag 将 rebar 控件置于拖放模式。
CReBarCtrl::Create 创建 rebar 控件并将其附加到 CReBarCtrl 对象。
CReBarCtrl::CreateEx 创建具有指定 Windows 扩展样式的 rebar 控件,并将其附加到 CReBarCtrl 对象。
CReBarCtrl::DeleteBand 从 rebar 控件中删除带。
CReBarCtrl::DragMove 调用 BeginDrag 后更新 rebar 控件中的拖动位置。
CReBarCtrl::EndDrag 终止 rebar 控件的拖放操作。
CReBarCtrl::GetBandBorders 检索带的边框。
CReBarCtrl::GetBandCount 检索 rebar 控件中当前带数。
CReBarCtrl::GetBandInfo 检索有关 rebar 控件中指定带的信息。
CReBarCtrl::GetBandMargins 检索带的边距。
CReBarCtrl::GetBarHeight 检索 rebar 控件的高度。
CReBarCtrl::GetBarInfo 检索有关 rebar 控件及其使用的图像列表的信息。
CReBarCtrl::GetBkColor 检索 rebar 控件的默认背景色。
CReBarCtrl::GetColorScheme 检索与 rebar 控件关联的 COLORSCHEME 结构。
CReBarCtrl::GetDropTarget 检索 rebar 控件的 IDropTarget 接口指针。
CReBarCtrl::GetExtendedStyle 获取当前 rebar 控件的扩展样式。
CReBarCtrl::GetImageList 检索与 rebar 控件关联的图像列表。
CReBarCtrl::GetPalette 检索 rebar 控件的当前调色板。
CReBarCtrl::GetRect 检索 rebar 控件中给定带的边框。
CReBarCtrl::GetRowCount 检索 rebar 控件中的带行数。
CReBarCtrl::GetRowHeight 检索 rebar 控件中指定行的高度。
CReBarCtrl::GetTextColor 检索 rebar 控件的默认文本颜色。
CReBarCtrl::GetToolTips 检索与 rebar 控件关联的任何工具提示控件的句柄。
CReBarCtrl::HitTest 确定 rebar 带的哪一部分位于屏幕上的给定点(如果 rebar 带存在于该点)。
CReBarCtrl::IDToIndex 将带标识符 (ID) 转换为 rebar 控件中的带索引。
CReBarCtrl::InsertBand 在 rebar 控件中插入新带。
CReBarCtrl::MaximizeBand 将 rebar 控件中的带的大小调整为其最大大小。
CReBarCtrl::MinimizeBand 将 rebar 控件中的带的大小调整为其最小大小。
CReBarCtrl::MoveBand 将带从一个索引移动到另一个索引。
CReBarCtrl::PushChevron 以编程方式推送 V 形。
CReBarCtrl::RestoreBand 将 rebar 控件中的带的大小调整为其理想大小。
CReBarCtrl::SetBandInfo 设置 rebar 控件中现有带的特征。
CReBarCtrl::SetBandWidth 设置当前 rebar 控件中指定停靠带的宽度。
CReBarCtrl::SetBarInfo 设置 rebar 控件的特征。
CReBarCtrl::SetBkColor 设置 rebar 控件的默认背景色。
CReBarCtrl::SetColorScheme 设置 rebar 控件上按钮的配色方案。
CReBarCtrl::SetExtendedStyle 设置当前 rebar 控件的扩展样式。
CReBarCtrl::SetImageList 设置 rebar 控件的图像列表。
CReBarCtrl::SetOwner 设置 rebar 控件的所有者窗口。
CReBarCtrl::SetPalette 设置 rebar 控件的当前调色板。
CReBarCtrl::SetTextColor 设置 rebar 控件的默认文本颜色。
CReBarCtrl::SetToolTips 将工具提示控件与 rebar 控件关联。
CReBarCtrl::SetWindowTheme 设置 rebar 控件的视觉样式。
CReBarCtrl::ShowBand 显示或隐藏 rebar 控件中的给定带。
CReBarCtrl::SizeToRect 将 rebar 控件拟合到指定的矩形。

注解

rebar 控件所在的应用程序将 rebar 控件包含的子窗口分配给 rebar 带。 子窗口通常是另一个常见控件。

rebar 控件包含一个或多个带。 每个带可以包含手柄栏、位图、文本标签和子窗口的组合。 带只能包含其中一个此类项。

rebar 控件可以在指定的背景位图上显示子窗口。 可以调整所有 rebar 控件带的大小,但使用 RBBS_FIXEDSIZE 样式的带除外。 重新定位 rebar 控件带或调整其大小时,rebar 控件将管理分配给该带的子窗口的大小和位置。 若要调整控件中带的大小或更改其顺序,请单击并拖动带的手柄栏。

下图显示了具有三个带的 rebar 控件:

  • 带 0 包含平面透明工具栏控件。

  • 带 1 包含透明标准和透明下拉列表按钮。

  • 带 2 包含组合框和四个标准按钮。

    Example of a Rebar menu.

Rebar 控件

Rebar 控件支持:

  • 图像列表。

  • 消息处理。

  • 自定义绘制功能。

  • 除了标准窗口样式外,还有各种控件样式。 有关这些样式的列表,请参阅 Windows SDK 中的 Rebar 控件样式

有关详细信息,请参阅使用 CReBarCtrl

继承层次结构

CObject

CCmdTarget

CWnd

CReBarCtrl

要求

标头: afxcmn.h

CReBarCtrl::BeginDrag

实现 Win32 消息 RB_BEGINDRAG 的行为,如 Windows SDK 中所述。

void BeginDrag(
    UINT uBand,
    DWORD dwPos = (DWORD)-1);

参数

uBand
拖放操作会影响的带的从零开始的索引。

dwPos
包含起始鼠标坐标的 DWORD 值。 水平坐标包含在 LOWORD 中,垂直坐标包含在 HIWORD 中。 如果传递 (DWORD)-1,则 rebar 控件将在上次调用控件的线程(名为 GetMessagePeekMessage)时使用鼠标的位置。

CReBarCtrl::Create

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

virtual BOOL Create(
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

参数

dwStyle
指定应用于控件的 rebar 控件样式的组合。 有关支持的样式的列表,请参阅 Windows SDK 中的 Rebar 控件样式

rect
CRect 对象或 RECT 结构的引用,它是 rebar 控件的位置和大小。

pParentWnd
指向 CWnd 对象(rebar 控件的父窗口)的指针。 不得为 NULL。

nID
指定 rebar 控件的控件 ID。

返回值

如果成功创建对象,则为非零;否则为 0。

注解

分两步创建 rebar 控件:

  1. 调用 CReBarCtrl 以构造 CReBarCtrl 对象。

  2. 调用此成员函数,以创建 Windows rebar 控件并将其附加到 CReBarCtrl 对象。

调用 Create 时,会初始化公用控件。

示例

CReBarCtrl *pReBarCtrl = new CReBarCtrl();
CRect rect;
GetWindowRect(rect);
pReBarCtrl->Create(RBS_BANDBORDERS, rect, this, AFX_IDW_REBAR);

// Use ReBar Control.

delete pReBarCtrl;

CReBarCtrl::CreateEx

创建一个控件(子窗口)并将其与 CReBarCtrl 对象相关联。

virtual BOOL CreateEx(
    DWORD dwExStyle,
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

参数

dwExStyle
指定要创建的控件的扩展样式。 有关扩展 Windows 样式的列表,请参阅 Windows SDK 中 CreateWindowEx 的 dwExStyle 参数

dwStyle
指定应用于控件的 rebar 控件样式的组合。 有关支持的样式的列表,请参阅 Windows SDK 中的 Rebar 控件样式

rect
RECT 结构的引用,该结构描述了要在客户端坐标 pParentWnd 中创建的窗口的大小和位置。

pParentWnd
指向作为控件父级的窗口的指针。

nID
控件的子窗口 ID。

返回值

如果成功,则不为 0;否则为 0。

注解

使用 CreateEx 而不是 Create 来应用由 Windows 扩展样式前言 WS_EX_ 指定的扩展 Windows 样式

CReBarCtrl::CReBarCtrl

创建一个 CReBarCtrl 对象。

CReBarCtrl();

示例

请参阅 CReBarCtrl::Create 的示例。

CReBarCtrl::DeleteBand

实现 Win32 消息 RB_DELETEBAND 的行为,如 Windows SDK 中所述。

BOOL DeleteBand(UINT uBand);

参数

uBand
要删除的带的从零开始的索引。

返回值

如果成功删除带,则为非零;否则为零。

示例

UINT nCount = m_wndReBar.GetReBarCtrl().GetBandCount();

if (nCount > 0)
   m_wndReBar.GetReBarCtrl().DeleteBand(nCount - 1);

CReBarCtrl::DragMove

实现 Win32 消息 RB_DRAGMOVE 的行为,如 Windows SDK 中所述。

void DragMove(DWORD dwPos = (DWORD)-1);

参数

dwPos
包含新鼠标坐标的 DWORD 值。 水平坐标包含在 LOWORD 中,垂直坐标包含在 HIWORD 中。 如果传递 (DWORD)-1,则 rebar 控件将在上次调用控件的线程(名为 GetMessagePeekMessage)时使用鼠标的位置。

CReBarCtrl::EndDrag

实现 Win32 消息 RB_ENDDRAG 的行为,如 Windows SDK 中所述。

void EndDrag();

CReBarCtrl::GetBandBorders

实现 Win32 消息 RB_GETBANDBORDERS 的行为,如 Windows SDK 中所述。

void GetBandBorders(
    UINT uBand,
    LPRECT prc) const;

参数

uBand
要为其检索边框的带的从零开始的索引。

prc
指向将接收带边框的 RECT 结构的指针。 如果 rebar 控件具有 RBS_BANDBORDERS 样式,则此结构的每个成员将接收带的相应边上构成边框的像素数。 如果 rebar 控件没有 RBS_BANDBORDERS 样式,则只有此结构的左侧成员接收有效信息。 有关 rebar 控件样式的说明,请参阅 Windows SDK 中的 Rebar 控件样式

CReBarCtrl::GetBandCount

实现 Win32 消息 RB_GETBANDCOUNT 的行为,如 Windows SDK 中所述。

UINT GetBandCount() const;

返回值

分配给控件的带数。

CReBarCtrl::GetBandInfo

实现 Win32 消息 RB_GETBANDINFO 的行为,如 Windows SDK 中所述。

BOOL GetBandInfo(
    UINT uBand,
    REBARBANDINFO* prbbi) const;

参数

uBand
要为其检索信息的带的从零开始的索引。

prbbi
指向 REBARBANDINFO 结构的指针以接收带信息。 必须将此结构的 cbSize 成员设置为 sizeof(REBARBANDINFO),并将 fMask 成员设置为要在发送此消息之前检索的项。

返回值

如果成功,则不为零,否则为零。

CReBarCtrl::GetBandMargins

检索带的边距。

void GetBandMargins(PMARGINS pMargins);

参数

pMargins
指向将接收信息的 MARGINS 结构的指针。

注解

此成员函数模拟 RB_GETBANDMARGINS 消息的功能,如 Windows SDK 中所述。

CReBarCtrl::GetBarHeight

检索 rebar 栏的高度。

UINT GetBarHeight() const;

返回值

表示控件的高度(以像素为单位)的值。

CReBarCtrl::GetBarInfo

实现 Win32 消息 RB_GETBARINFO 的行为,如 Windows SDK 中所述。

BOOL GetBarInfo(REBARINFO* prbi) const;

参数

prbi
指向将接收 rebar 控件信息的 REBARINFO 结构的指针。 在发送此消息之前,必须将此结构的 cbSize 成员设置为 sizeof(REBARINFO)

返回值

如果成功,则不为零,否则为零。

CReBarCtrl::GetBkColor

实现 Win32 消息 RB_GETBKCOLOR 的行为,如 Windows SDK 中所述。

COLORREF GetBkColor() const;

返回值

表示当前默认背景色的 COLORREF 值。

CReBarCtrl::GetColorScheme

检索 rebar 控件的 COLORSCHEME 结构。

BOOL GetColorScheme(COLORSCHEME* lpcs);

参数

lpcs
指向 COLORSCHEME 结构的指针,如 Windows SDK 中所述。

返回值

如果成功,则不为零,否则为零。

备注

结构 COLORSCHEME 包括按钮突出显示颜色和按钮阴影颜色。

CReBarCtrl::GetDropTarget

实现 Win32 消息 RB_GETDROPTARGET 的行为,如 Windows SDK 中所述。

IDropTarget* GetDropTarget() const;

返回值

指向 IDropTarget 接口的指针。

CReBarCtrl::GetExtendedStyle

获取当前 rebar 控件的扩展样式。

DWORD GetExtendedStyle() const;

返回值

指示扩展样式的标志的按位组合 (OR)。 可能的标志是 RBS_EX_SPLITTER 和 RBS_EX_TRANSPARENT。 有关详细信息,请参阅 CReBarCtrl::SetExtendedStyle 方法的 dwMask 参数。

注解

此方法将发送 RB_GETEXTENDEDSTYLE 消息,如 Windows SDK 中所述。

CReBarCtrl::GetImageList

获取与 rebar 控件关联的 CImageList 对象。

CImageList* GetImageList() const;

返回值

指向 CImageList 对象的指针。 如果未为控件设置图像列表,则返回 NULL。

备注

此成员函数使用 REBARINFO 结构中存储的大小和掩码信息,如 Windows SDK 中所述。

CReBarCtrl::GetPalette

检索 rebar 控件的当前调色板。

CPalette* GetPalette() const;

返回值

指向指定 rebar 控件的当前调色板的 CPalette 对象的指针。

注解

请注意,此成员函数使用 CPalette 对象作为其返回值,而不是 HPALETTE。

示例

CPalette *pPalette = m_wndReBar.GetReBarCtrl().GetPalette();
if (pPalette)
{
   int nEntries = pPalette->GetEntryCount();
   CString msg;
   msg.Format(_T("Number of palette entries: %d"), nEntries);
   AfxMessageBox(msg);
}
else
{
   AfxMessageBox(_T("No palette!"));
}

CReBarCtrl::GetRect

实现 Win32 消息 RB_GETRECT 的行为,如 Windows SDK 中所述。

BOOL GetRect(
    UINT uBand,
    LPRECT prc) const;

参数

uBand
rebar 控件中带的从零开始的索引。

prc
指向将接收 rebar 带的边界的 RECT 结构的指针。

返回值

如果成功,则不为零,否则为零。

示例

CRect rc;
m_wndReBar.GetReBarCtrl().GetRect(0, &rc);
CString msg;
msg.Format(_T("rect.left = %d, rect.top = %d, ")
           _T("rect.right = %d, rect.bottom = %d"),
           rc.left,
           rc.top, rc.right, rc.bottom);
AfxMessageBox(msg);

CReBarCtrl::GetRowCount

实现 Win32 消息 RB_GETROWCOUNT 的行为,如 Windows SDK 中所述。

UINT GetRowCount() const;

返回值

表示控件中的带行数的 UINT 值。

示例

UINT nRowCount = m_wndReBar.GetReBarCtrl().GetRowCount();
CString msg;
msg.Format(_T("Row Count is %d"), nRowCount);
AfxMessageBox(msg);

CReBarCtrl::GetRowHeight

实现 Win32 消息 RB_GETROWHEIGHT 的行为,如 Windows SDK 中所述。

UINT GetRowHeight(UINT uRow) const;

参数

uRow
要检索其高度的带的从零开始的索引。

返回值

表示行高(以像素为单位)的 UINT 值。

示例

int nCount = m_wndReBar.GetReBarCtrl().GetRowCount();
for (int i = 0; i < nCount; i++)
{
   UINT nHeight = m_wndReBar.GetReBarCtrl().GetRowHeight(i);
   CString msg;
   msg.Format(_T("Height of row %d is %u"), i, nHeight);
   AfxMessageBox(msg);
}

CReBarCtrl::GetTextColor

实现 Win32 消息 RB_GETTEXTCOLOR 的行为,如 Windows SDK 中所述。

COLORREF GetTextColor() const;

返回值

表示当前默认文本颜色的 COLORREF 值。

CReBarCtrl::GetToolTips

实现 Win32 消息 RB_GETTOOLTIPS 的行为,如 Windows SDK 中所述。

CToolTipCtrl* GetToolTips() const;

返回值

指向 CToolTipCtrl 对象的指针。

注解

请注意,GetToolTips 的 MFC 实现返回指向 CToolTipCtrl 的指针,而不是 HWND。

CReBarCtrl::HitTest

实现 Win32 消息 RB_HITTEST 的行为,如 Windows SDK 中所述。

int HitTest(RBHITTESTINFO* prbht);

参数

prbht
指向 RBHITTESTINFO 结构的指针。 在发送消息之前,此结构的 pt 成员必须初始化为要测试的点(以客户端坐标为单位)。

返回值

给定点处的带的从零开始的索引,如果没有 rebar 带位于该点,则为 -1。

CReBarCtrl::IDToIndex

实现 Win32 消息 RB_IDTOINDEX 的行为,如 Windows SDK 中所述。

int IDToIndex(UINT uBandID) const;

参数

uBandID
指定带的应用程序定义的标识符,在插入带时传入 REBARBANDINFO 结构的 wID 成员。

返回值

如果成功,则为从零开始的带索引,否则为 -1。 如果存在重复的带索引,则返回第一个索引。

CReBarCtrl::InsertBand

实现 Win32 消息 RB_INSERTBAND 的行为,如 Windows SDK 中所述。

BOOL InsertBand(
    UINT uIndex,
    REBARBANDINFO* prbbi);

参数

uIndex
将插入带的位置的从零开始的索引。 如果将此参数设置为 -1,控件将在最后一个位置添加新带。

prbbi
指向将定义要插入的带的 REBARBANDINFO 结构的指针。 在调用此函数之前,必须将此结构的 cbSize 成员设置为 sizeof(REBARBANDINFO)

返回值

如果成功,则不为零,否则为零。

示例

REBARBANDINFO rbbi = {0};
rbbi.cbSize = sizeof(rbbi);

TCHAR szText[80];
rbbi.lpText = szText;
rbbi.cch = sizeof(szText) / sizeof(szText[0]);

rbbi.fMask = RBBIM_BACKGROUND | RBBIM_CHILD |
             RBBIM_CHILDSIZE | RBBIM_COLORS | RBBIM_HEADERSIZE |
             RBBIM_IDEALSIZE | RBBIM_ID | RBBIM_IMAGE |
             RBBIM_LPARAM | RBBIM_SIZE | RBBIM_STYLE | RBBIM_TEXT;

m_wndReBar.GetReBarCtrl().GetBandInfo(0, &rbbi);

m_wndReBar.GetReBarCtrl().InsertBand(1, &rbbi);

CReBarCtrl::MaximizeBand

将 rebar 控件中的带的大小调整为其最大大小。

void MaximizeBand(UINT uBand);

参数

uBand
要最大化的带的从零开始的索引。

注解

通过将 fIdeal 设置为 0 来实现 Win32 消息 RB_MAXIMIZEBAND 的行为,如 Windows SDK 中所述。

示例

CReBarCtrl& refReBarCtrl = m_wndReBar.GetReBarCtrl();
UINT nCount = refReBarCtrl.GetBandCount();

for (UINT i = 0; i < nCount; i++)
   refReBarCtrl.MaximizeBand(i);   

CReBarCtrl::MinimizeBand

将 rebar 控件中的带的大小调整为其最小大小。

void MinimizeBand(UINT uBand);

参数

uBand
要最小化的带的从零开始的索引。

备注

实现 Win32 消息 RB_MINIMIZEBAND 的行为,如 Windows SDK 中所述。

示例

CReBarCtrl &refReBarCtrl = m_wndReBar.GetReBarCtrl();
UINT nCount = refReBarCtrl.GetBandCount();

for (UINT i = 0; i < nCount; i++)
   refReBarCtrl.MinimizeBand(i);

CReBarCtrl::MoveBand

实现 Win32 消息 RB_MOVEBAND 的行为,如 Windows SDK 中所述。

BOOL MoveBand(
    UINT uFrom,
    UINT uTo);

参数

uFrom
要移动的带的从零开始的索引。

uTo
新带位置的从零开始的索引。 此参数值绝不能大于带数减 1。 若要获取带数,请调用 GetBandCount

返回值

如果成功,则不为零,否则为零。

CReBarCtrl::PushChevron

实现 Win32 消息 RB_PUSHCHEVRON 的行为,如 Windows SDK 中所述。

void PushChevron(
    UINT uBand,
    LPARAM lAppValue);

参数

uBand
要推送其 V 形的带的从零开始的索引。

lAppValue
应用程序定义了 32 位值。 请参阅 Windows SDK 中的 RB_PUSHCHEVRON 的 lAppValue

CReBarCtrl::RestoreBand

将 rebar 控件中的带的大小调整为其理想大小。

void RestoreBand(UINT uBand);

参数

uBand
要最大化的带的从零开始的索引。

注解

通过将 fIdeal 设置为 1 来实现 Win32 消息 RB_MAXIMIZEBAND 的行为,如 Windows SDK 中所述。

示例

CReBarCtrl &refReBarCtrl = m_wndReBar.GetReBarCtrl();
UINT nCount = refReBarCtrl.GetBandCount();

for (UINT i = 0; i < nCount; i++)
   refReBarCtrl.RestoreBand(i);

CReBarCtrl::SetBandInfo

实现 Win32 消息 RB_SETBANDINFO 的行为,如 Windows SDK 中所述。

BOOL SetBandInfo(
    UINT uBand,
    REBARBANDINFO* prbbi);

参数

uBand
要接收新设置的带的从零开始的索引。

prbbi
指向将定义要插入的带的 REBARBANDINFO 结构的指针。 在发送此消息之前,必须将此结构的 cbSize 成员设置为 sizeof(REBARBANDINFO)

返回值

如果成功,则不为零,否则为零。

示例

int nCount = m_wndReBar.GetReBarCtrl().GetBandCount();
CString strText;
REBARBANDINFO rbbi = {0};
rbbi.cbSize = sizeof(rbbi);
for (int i = 0; i < nCount; i++)
{
   strText.Format(_T("Band #: %d"), i);
   rbbi.lpText = strText.GetBuffer();
   rbbi.cch = strText.GetLength() + 1;
   rbbi.fMask = RBBIM_TEXT;

   m_wndReBar.GetReBarCtrl().SetBandInfo(i, &rbbi);

   strText.ReleaseBuffer();
}

CReBarCtrl::SetBandWidth

设置当前 rebar 控件中指定停靠带的宽度。

BOOL SetBandWidth(
    UINT uBand,
    int cxWidth);

参数

uBand
[in] rebar 带的从零开始的索引。

cxWidth
[in] rebar 带的新宽度(以像素为单位)。

返回值

如果此方法成功,则为 TRUE;否则为 FALSE。

备注

此方法将发送 RB_SETBANDWIDTH 消息,如 Windows SDK 中所述。

示例

第一个代码示例定义一个变量 m_rebar,用于访问当前 rebar 控件。 此变量将在下一个示例中使用。

public:
CReBarCtrl m_rebar;
BOOL bRet;
static const int TOTAL_BANDS = 5;
static const int BUFFER_SIZE = 10;

下一个代码示例将每个 rebar 带设置为相同的宽度。

// Set the width of each band.
m_rebar.GetClientRect(&rect);
int iWidth = rect.Width() / TOTAL_BANDS;
for (int iIndex = 0; iIndex < TOTAL_BANDS; iIndex++)
   bRet = m_rebar.SetBandWidth(iIndex, iWidth);

CReBarCtrl::SetBarInfo

实现 Win32 消息 RB_SETBARINFO 的行为,如 Windows SDK 中所述。

BOOL SetBarInfo(REBARINFO* prbi);

参数

prbi
指向包含要设置的信息的 REBARINFO 结构的指针。 在发送此消息之前,必须将此结构的 cbSize 成员设置为 sizeof(REBARINFO)

返回值

如果成功,则不为零,否则为零。

示例

REBARINFO rbi = {0};
rbi.cbSize = sizeof(REBARINFO);
rbi.fMask = 0;
rbi.himl = 0;
m_wndReBar.GetReBarCtrl().SetBarInfo(&rbi);

CReBarCtrl::SetBkColor

实现 Win32 消息 RB_SETBKCOLOR 的行为,如 Windows SDK 中所述。

COLORREF SetBkColor(COLORREF clr);

参数

clr
表示新的默认背景色的 COLORREF 值。

返回值

表示上一个默认背景色的 COLORREF 值。

注解

有关何时设置背景色以及如何设置默认值的详细信息,请参阅本主题。

CReBarCtrl::SetColorScheme

设置 rebar 控件上按钮的配色方案。

void SetColorScheme(const COLORSCHEME* lpcs);

参数

lpcs
指向 COLORSCHEME 结构的指针,如 Windows SDK 中所述。

备注

COLORSCHEME 结构包括按钮突出显示颜色和按钮阴影颜色。

CReBarCtrl::SetExtendedStyle

设置当前 rebar 控件的扩展样式。

DWORD SetExtendedStyle(
    DWORD dwMask,
    DWORD dwStyleEx);

参数

dwMask
[in] 指定应用 dwStyleEx 参数中哪些标志的标志的按位组合 (OR)。 使用以下一个或多个值:

  • RBS_EX_SPLITTER:默认情况下,在水平模式下显示底部的拆分器,并在垂直模式下显示右侧的拆分器。
  • RBS_EX_TRANSPARENT:将 WM_ERASEBKGND 消息转发到父窗口。

dwStyleEx
[in] 指定要应用的样式的标志的按位组合 (OR)。 若要设置样式,请指定 dwMask 参数中使用的相同标志。 若要重置样式,请指定二进制零。

返回值

先前的扩展样式。

注解

此方法将发送 RB_SETEXTENDEDSTYLE 消息,如 Windows SDK 中所述。

CReBarCtrl::SetImageList

将图像列表分配给 rebar 控件。

BOOL SetImageList(CImageList* pImageList);

参数

pImageList
指向 CImageList 对象的指针,该对象包含要分配给 rebar 控件的图像列表。

返回值

如果成功,则不为零,否则为零。

CReBarCtrl::SetOwner

实现 Win32 消息 RB_SETPARENT 的行为,如 Windows SDK 中所述。

CWnd* SetOwner(CWnd* pWnd);

参数

pWnd
指向要设置为 rebar 控件的所有者的 CWnd 对象的指针。

返回值

指向作为 rebar 控件的当前所有者的 CWnd 对象的指针。

备注

请注意,此成员函数使用指向 rebar 控件的当前所有者和所选所有者的 CWnd 对象的指针,而不是窗口句柄。

注意

此成员函数不会更改创建控件时设置的实际父级;而是将通知消息发送到指定的窗口。

CReBarCtrl::SetPalette

实现 Win32 消息 RB_SETPALETTE 的行为,如 Windows SDK 中所述。

CPalette* SetPalette(HPALETTE hPal);

参数

hPal
指定 rebar 控件将使用的新调色板的 HPALETTE。

返回值

指向指定 rebar 控件的先前调色板的 CPalette 对象的指针。

注解

请注意,此成员函数使用 CPalette 对象作为其返回值,而不是 HPALETTE。

CReBarCtrl::SetTextColor

实现 Win32 消息 RB_SETTEXTCOLOR 的行为,如 Windows SDK 中所述。

COLORREF SetTextColor(COLORREF clr);

参数

clr
表示 CReBarCtrl 对象中的新文本颜色的 COLORREF 值。

返回值

表示与 CReBarCtrl 对象关联的上一个文本颜色的 COLORREF 值。

备注

提供它来支持 rebar 控件中的文本颜色灵活性。

CReBarCtrl::SetToolTips

将工具提示控件与 rebar 控件关联。

void SetToolTips(CToolTipCtrl* pToolTip);

参数

pToolTip
指向 CToolTipCtrl 对象的指针

注解

完成后必须销毁 CToolTipCtrl 对象。

CReBarCtrl::SetWindowTheme

设置 rebar 控件的视觉样式。

HRESULT SetWindowTheme(LPCWSTR pszSubAppName);

参数

pszSubAppName
指向 Unicode 字符串的指针,该字符串包含要设置的 rebar 视觉样式。

返回值

不使用返回值。

注解

此成员函数模拟消息 RB_SETWINDOWTHEME 的功能,如 Windows SDK 中所述。

CReBarCtrl::ShowBand

实现 Win32 消息 RB_SHOWBAND 的行为,如 Windows SDK 中所述。

BOOL ShowBand(
    UINT uBand,
    BOOL fShow = TRUE);

参数

uBand
rebar 控件中带的从零开始的索引。

fShow
指示应显示还是隐藏带。 如果此值为 TRUE,则将显示带。 否则,将隐藏带。

返回值

如果成功,则不为零,否则为零。

CReBarCtrl::SizeToRect

实现 Win32 消息 RB_SIZETORECT 的行为,如 Windows SDK 中所述。

BOOL SizeToRect(CRect& rect);

参数

rect
CRect 对象的引用,该对象指定应将 rebar 控件的大小调整到的矩形。

返回值

如果成功,则不为零,否则为零。

备注

请注意,此成员函数使用 CRect 对象作为参数,而不是 RECT 结构。

另请参阅

CWnd 类
层次结构图