我试图覆盖CMFCVisualManager上的某些功能来自定义我的功能区。所以我创建了一个类并从中派生出来。
void CMyVisualManager::OnDrawRibbonCategory(CDC* pDC, CMFCRibbonCategory* pCategory, CRect rectCategory)
现在这可以改变颜色等,但是有些功能我不能或不能正确地做到这一点
void CMyVisualManager::OnDrawRibbonLaunchButton(CDC* pDC, CMFCRibbonLaunchButton* pButton, CMFCRibbonPanel* pPanel)
我的方法不会覆盖原始方法,而原始函数会被调用
如果有人能指出我正确的方向,我一直在寻找,但无法找到答案,谢谢
答案 0 :(得分:0)
是的,您覆盖了班级中的某个功能。
但是您的可视化管理器不是创建的那个。所以它永远不会被使用。 程序启动时,会创建可视化管理器的实例。并且使用了这个实例。
仅当您还强制MFC使用可视化管理器时,才会使用覆盖功能。
在程序的InitInstance中使用SetDefaultManager与您的类的运行时类。