我正在尝试覆盖CMFCVisualManager上的一些函数以自定义我的功能区。所以我创建了一个类并从它派生出来。
void CMyVisualManager::OnDrawRibbonCategory(CDC* pDC, CMFCRibbonCategory* pCategory, CRect rectCategory)现在,它可以工作,可以改变颜色等,但有一些函数,我不能或覆盖或没有正确地做它,如
void CMyVisualManager::OnDrawRibbonLaunchButton(CDC* pDC, CMFCRibbonLaunchButton* pButton, CMFCRibbonPanel* pPanel)我的方法不会覆盖原始函数,并且会调用原始函数
如果有人能为我指明正确的方向,我一直在寻找,但没有找到答案,谢谢
发布于 2015-09-28 17:04:43
是的,你在你的类中覆盖了一个函数。
但是你的可视化管理器不是被创建的那个。所以它永远不会被使用。当您的程序启动时,将创建可视化管理器的一个实例。并使用此实例。
只有当您还强制MFC使用可视化管理器时,才会使用您的重写函数。
在程序的InitInstance中,将SetDefaultManager与您的类的运行时类一起使用。
https://stackoverflow.com/questions/32790528
复制相似问题