是否可以从CMFCRibbonCategory中删除CMFCRibbonPanel?

问题描述:

我正在寻找招数来从CMFCRibbonCategory中删除CMFCRibbonPanelCMFCRibbonCategory中只有AddPanel()函数,但没有RemovePanel()是否可以从CMFCRibbonCategory中删除CMFCRibbonPanel?

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

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

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

CMFCRibbonCategory *pCategory = m_wndRibbonBar.GetCategory(0); 

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

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

我想删除pPanel本身,而不是面板中的元素。 (pPanel-> GetCount()) VERIFY(pPanel-> Remove(0));} insted of pPanel-> RemoveAll(); 看到https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=377527&wa=wsignin1.0 – mem64k 2009-02-26 16:27:59

+0

我知道这就像3年前,无论如何感谢在未来帮助我。 – 2012-07-26 23:08:25

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