2012-02-16 4 views
3

MFCのツールバー(CMFCToolBar)をデフォルトの外観(CMFCMenuBar)のように透明にしたいとします。CMFCToolBarのCMFCMenuBar種類の透明度

ツールバーの作成時にコントロールのスタイルTBSTYLE_FLAT | TBSTYLE_TRANSPARENTを使用していて、透明な背景を取得しています。しかし、私はまだ上下の境界線を持っているし、グリッパーも同じままです。

SetBorders(0,0,0,0)またはスタイルを削除すると、CBRS_BORDER_TOP | CBRS_BORDER_BOTTOMはそのトリックを行いません。

CCS_NODIVIDER(明らかに2ピクセルの上端を削除するため)を使用しても効果はありません。

カスタムの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

すべてのヘルプは非常にあります驚いた!

+0

あなたは 'CBRS_GRIPPER'を削除してみましたか?ツールバーの作成/修正に使用している実際のコードを質問に投稿することを検討してください。 –

+0

私はグリッパーを削除したくない、私はちょうどそれがCMFCMenuBarと同じ方法、すなわち透明に見える持っていると思います。 – mrknownothing

答えて

0

SetExclusiveRowMode(true)に電話してみましたか?メニューバーには排他的な行モードが設定されていますが、ツールバーはデフォルトでは使用できません。

+0

はい、実際に私はすべて正常に動作しますがtrueに設定され、行の排他モードを持っていますが、それは透明性に関しては何も変わりません。 – mrknownothing