【发布时间】:2012-03-07 14:20:06
【问题描述】:
我想让 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);
这是我现在的位置:
这是我的目标:
非常感谢任何帮助!
【问题讨论】:
-
您是否尝试删除
CBRS_GRIPPER?考虑在您的问题中发布您用于创建/修改工具栏的实际代码。 -
我不想移除抓手,我只想让它看起来与 CMFCMenuBar 一样,即透明。
标签: c++ mfc toolbar transparent