2015-09-25 51 views
0

我試圖覆蓋CMFCVisualManager上的一些功能來自定義我的功能區。所以我創建了一個類並從中派生出來。MFC CMFCVisualManager覆蓋

void CMyVisualManager::OnDrawRibbonCategory(CDC* pDC, CMFCRibbonCategory* pCategory, CRect rectCategory) 

現在這個工作,可以改變顏色等,但也有一些功能,我不能或覆蓋或不這樣做是正確的像

void CMyVisualManager::OnDrawRibbonLaunchButton(CDC* pDC, CMFCRibbonLaunchButton* pButton, CMFCRibbonPanel* pPanel) 

我的方法犯規覆蓋原始,和原有的功能被稱爲

https://msdn.microsoft.com/en-us/subscriptions/downloads/65a24718-8128-43f9-973d-25262bdceae7(v=vs.90) 說它可以被覆蓋。

如果任何人都可以在正確的方向指向我,我一直在尋找,但找不到答案感謝

+0

_「但有一些功能,我不能或覆蓋」_ - 這是什麼意思?你是否收到錯誤信息?請詳細說明。 – rrirower

+0

沒有我的重寫函數沒有被調用,但原來沒有錯誤 –

回答

0

是的,你覆蓋類的功能。

但是你的視覺管理器不是被創建的。所以它永遠不會被使用。 當你的程序啓動時,創建一個可視化管理器的實例。並且使用這個實例。

只有當你強制MFC使用你的視覺管理器時,你的覆蓋函數也會被使用。

在您的程序的InitInstance中使用SetDefaultManager與您的類的運行時類。