是否可以从CMFCRibbonCategory中删除CMFCRibbonPanel?
问题描述:
我正在寻找招数来从CMFCRibbonCategory
中删除CMFCRibbonPanel
。 CMFCRibbonCategory
中只有AddPanel()
函数,但没有RemovePanel()
。是否可以从CMFCRibbonCategory中删除CMFCRibbonPanel?
我真的需要重建我的整个CMFCRibbonCategory
来做到这一点吗?
只是澄清,我想要的是从类别中删除面板本身,而不是面板中的元素。
答
我对CMFCRibbonPanel
和CMFCRibbonCategory
一无所知。在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();
}
}
答
在我的情况下,我最终从头开始重建类别。在CMFCRibbonCategory
源代码中(查找afxribboncategory.cpp
)没有明显的方法从面板数组中移除面板。
我想删除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
我知道这就像3年前,无论如何感谢在未来帮助我。 – 2012-07-26 23:08:25