vs2010 CMFCToolBar 工具欄 如何修改背景顏色
vs2010 所建立的MFC工程,在建立住框架視窗時,通常會是呼叫OnApplicationLook函式。在此函式中呼叫CMFCVisualManager選件完成軟體介面的管理,這樣工具欄的顏色由CMFCVisualManager採取的風格有關,就被不能更改,無論是在子類中覆蓋OnEraseBkgnd函式都無效。
實現的原始碼下載地址:http://download.csdn.net/download/chenyixin121738/9947967
具體解決辦法:工具欄背景重繪其實需要兩個部分:客戶區和非客戶區的繪製。
首先自己寫一個類CMyToolBar派生於CMFCToolBar,覆蓋DoPaint和
1.客戶區的繪製依賴DoPaint函式,找到CMFCVisualManager::GetInstance()->OnFillBarBackground(pDC, this, rectClient, rectClip)函式,將其註釋,在下方與填充工具欄按鈕背景紙前,加入以下程式碼,其中RGB(83,84,85)是需要修改的工具欄客戶區背景顏色。
CRect rect;
GetClientRect(rect);
//填充客戶區
pDC->FillSolidRect(rect,RGB(83,84,85));
2.非客戶區的繪製依賴OnNcPaint函式
dc.IntersectClipRect(rectWindow);
dc.FillSolidRect(rectWindow,RGB(83,84,85));