我正在寻找从CMFCRibbonPanel
移除CMFCRibbonCategory
的技巧。 AddPanel()
中只有CMFCRibbonCategory
个功能,但没有RemovePanel()
。
我真的需要重建我的整个CMFCRibbonCategory
才能做到这一点吗?
为了澄清,我想要的是从类别中删除面板本身而不是面板中的元素。
答案 0 :(得分:3)
在我的情况下,我最终从头开始重建类别。在CMFCRibbonCategory
源代码中(查找afxribboncategory.cpp
),没有明显的方法可以从面板数组中删除面板。
答案 1 :(得分:1)
我对CMFCRibbonPanel
和CMFCRibbonCategory
一无所知。在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();
}
}