【问题标题】:How to attach a band to the right side of CReBar control如何将条带附加到 CReBar 控件的右侧
【发布时间】:2019-01-13 19:44:38
【问题描述】:

在我的框架窗口上,我有一个 CReBar 控件,在几行上带有不可移动的条带。在最后一行有两个带,当前向左对齐,第二个紧跟在第一个之后。

+--------+-------+------------------------------------+
|11111111|2222222|
+--------+-------+------------------------------------+

但我的产品管理人员要我将第二条带连接到该行的右侧,中间留有空白。

+--------+------------------------------------+-------+
|11111111|                                    |2222222|
+--------+------------------------------------+-------+

我在任何地方都找不到如何做到这一点。如果有任何帮助,我将不胜感激。

编辑: 实际代码使用 Xtreme GUI 库,但其结构非常标准:

// ... Create toolbars
// Add toolbars to ReBar.
if (m_wndReBar.Create(this) &&
    m_wndReBar.AddToolBar(pNavigateTB, RBBS_BREAK | RBBS_NOGRIPPER) &&
    m_wndReBar.AddBar(&m_wndAddressBar, NULL, NULL, RBBS_NOGRIPPER) &&
    m_wndReBar.AddToolBar(pMainToolBar, RBBS_BREAK | RBBS_NOGRIPPER) &&
    m_wndReBar.AddToolBar(pViewsHelpTB, RBBS_NOGRIPPER))
{
    ...
}

这里m_wndReBar 是一个CReBar 派生类,工具栏是通用工具栏控件的Xtreme 包装器。他们使用常规的 MFC 标志,我没有找到将工具栏向右对齐的选项。

【问题讨论】:

  • 请出示相关代码。也许您正在将CToolbarCToolbarCtrl 添加到CRebar,我认为工具栏应该必须选择右对齐。

标签: windows visual-c++ mfc common-controls


【解决方案1】:

工具栏没有样式或参数,这迫使它向右对齐。但是,可以通过将后续工具栏推到最右侧位置的方式扩展上一个工具栏。

让如上图第一张图,两个连续的工具栏在CReBar的同一行,第一个工具栏的索引为I。比命令

m_ReBar.SendMessage(RB_MAXIMIZEBAND, I, 0);

将第二个工具栏向右移动,如第二个图所示。这个最右边的位置将在窗口调整大小期间保留,但向钢筋添加新工具栏可能会破坏它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-27
    • 2012-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-04
    相关资源
    最近更新 更多