是否可以从CMFCRibbonCategory中删除CMFCRibbonPanel?

时间:2009-02-26 11:51:48

标签: c++ visual-c++ mfc mfc-feature-pack

我正在寻找从CMFCRibbonPanel移除CMFCRibbonCategory的技巧。 AddPanel()中只有CMFCRibbonCategory个功能,但没有RemovePanel()

我真的需要重建我的整个CMFCRibbonCategory才能做到这一点吗?

为了澄清,我想要的是从类别中删除面板本身而不是面板中的元素。

2 个答案:

答案 0 :(得分:3)

在我的情况下,我最终从头开始重建类别。在CMFCRibbonCategory源代码中(查找afxribboncategory.cpp),没有明显的方法可以从面板数组中删除面板。

答案 1 :(得分:1)

我对CMFCRibbonPanelCMFCRibbonCategory一无所知。在MSDN中看到类声明后,我认为您可以从CMFCRibbonPanel获取对CMFCRibbonCategory的引用,并在指针上调用CMFCRibbonPanel::RemoveAll

CMFCRibbonCategory *pCategory = m_wndRibbonBar.GetCategory(0);

if (pCategory)
{
     CMFCRibbonPanel *pPanel = pCategory->GetPanel(0);

     if (pPanel)
     {
        pPanel->RemoveAll();
        m_wndRibbonBar.AdjustSizeImmediate();
     }
}