Как прикрепить ленту к правой стороне элемента управления CReBar - PullRequest
0 голосов
/ 13 января 2019

В моем окне кадра у меня есть элемент управления CReBar с неподвижными полосами на нескольких линиях. В последней строке находятся две полосы, которые в настоящее время выровнены по левому краю, вторая сразу после первой.

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

Но мой менеджер по продукту хочет, чтобы я прикрепил вторую полосу к правой стороне линии с пустым пространством в середине.

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

Я нигде не могу найти, как это сделать. Буду благодарен за любую помощь.

Edit: Фактический код использует библиотеку 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, и я не нашел возможности выровнять панель инструментов вправо.

1 Ответ

0 голосов
/ 19 февраля 2019

Нет стиля или параметра панели инструментов, который заставляет ее выравниваться вправо. Однако можно расширить предыдущую панель инструментов так, чтобы она переместила последующую панель инструментов в крайнее правое положение.

Пусть, как на первом рисунке выше, две последовательные панели инструментов находятся на одной строке в CReBar, а первая панель инструментов имеет индекс I. Чем команда

m_ReBar.SendMessage(RB_MAXIMIZEBAND, I, 0);

переместит вторую панель инструментов вправо, как на втором рисунке. Это крайнее правое положение будет сохраняться при изменении размера окна, но добавление новой панели инструментов к арматуре может сломать ее.

...