CMFCMenuBar вид прозрачности для CMFCToolBar - PullRequest
4 голосов
/ 16 февраля 2012

Я хочу, чтобы панель инструментов в MFC (CMFCToolBar) выглядела прозрачной, как и внешний вид по умолчанию CMFCMenuBar.

Я использую стили управления TBSTYLE_FLAT | TBSTYLE_TRANSPARENT при создании панели инструментов иполучить прозрачный фон.Однако у меня все еще есть верхняя и нижняя границы, и захват остается прежним.

SetBorders(0,0,0,0) или удаление стилей CBRS_BORDER_TOP | CBRS_BORDER_BOTTOM не сработает.

И использованиеCCS_NODIVIDER (очевидно, для удаления верхней границы в 2px) также не имеет эффекта.

Я мог бы предположить, что можно использовать собственный класс CMFCVisualManager (например, играть с CMFCVisualManager::OnFillBarBackground)., но пока не могу ничего понять по этому поводу.

Для ясности, вот код, который у меня сейчас есть:

m_wndToolBar.CreateEx(this /*MainFrame*/, TBSTYLE_FLAT | TBSTYLE_TRANSPARENT,
                      WS_CHILD | WS_VISIBLE | CBRS_ALIGN_TOP)
LoadToolBar(IDR_MY_TOOLBAR, 0, 0, TRUE);
m_wndToolBar.SetPaneStyle(GetPaneStyle() & ~(CBRS_BORDER_TOP    |
                                             CBRS_BORDER_BOTTOM |
                                             CBRS_BORDER_LEFT   |
                                             CBRS_BORDER_RIGHT));
m_wndToolBar.SetBorders(0,0,0,0);

Вот где я сейчас нахожусь:

И это моя цель:

enter image description here

Любая помощь высоко ценится!

1 Ответ

0 голосов
/ 16 февраля 2012

Вы пробовали звонить SetExclusiveRowMode(true)?Строки меню имеют эксклюзивный режим строк, панели инструментов по умолчанию не работают.

...