CMFCMenuBar CMFCToolBar的透明度

时间:2012-02-16 07:11:10

标签: c++ mfc toolbar transparent

我想让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 :(得分:0)

您是否尝试过调用SetExclusiveRowMode(true)?菜单栏具有独占的行模式设置,默认情况下不会使用工具栏。