我正在寻找从CMFCRibbonCategory中删除CMFCRibbonPanel的技巧。CMFCRibbonCategory中只有AddPanel()函数,没有RemovePanel()。
我真的需要重新构建整个CMFCRibbonCategory才能做到这一点吗?
只是为了澄清,我想要的是从类别中删除面板本身,而不是从面板中删除元素。
发布于 2009-03-05 15:34:22
在我的例子中,我最终从头开始重新构建了这个类别。在CMFCRibbonCategory源代码(查找afxribboncategory.cpp)中,没有明显的方法可以从面板数组中删除面板。
发布于 2009-02-26 15:54:33
我对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();
}
}https://stackoverflow.com/questions/590217
复制相似问题