2012-02-16 68 views
3

我想讓MFC中的工具欄(CMFCToolBar)顯示爲透明,就像CMFCMenuBar的默認外觀一樣。CMFCMenuBar CMFCToolBar的一種透明度

我在創建工具欄時使用控制樣式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

任何幫助是高度ppreciated!

+0

您是否嘗試刪除'CBRS_GRIPPER'?考慮在您的問題中發佈您用於創建/修改工具欄的實際代碼。 – 2012-02-16 07:35:39

+0

我不想刪除抓手,我只想讓它看起來像CMFCMenuBar一樣,即透明。 – mrknownothing 2012-02-17 01:09:54

回答

0

您是否試過撥打SetExclusiveRowMode(true)?菜單欄有獨佔的行模式設置,工具欄默認不是。

+0

是的,事實上,我確實有獨佔行模式設置爲true,工作正常,但它不會改變透明度的任何事情。 – mrknownothing 2012-02-17 01:10:59