C++ 是否可以从CMFCRibbonCategory中删除CMFCRibbonPanel?
我正在寻找从CMFCRibbonCategory中删除CMFCRibbonPanel的技巧。CMFCRibbonCategory中只有AddPanel函数,但没有RemovePanel 要做到这一点,我真的需要重建整个CMFCRibbonCategory吗C++ 是否可以从CMFCRibbonCategory中删除CMFCRibbonPanel?,c++,visual-c++,mfc,mfc-feature-pack,C++,Visual C++,Mfc,Mfc Feature Pack,我正在寻找从CMFCRibbonCategory中删除CMFCRibbonPanel的技巧。CMFCRibbonCategory中只有AddPanel函数,但没有RemovePanel 要做到这一点,我真的需要重建整个CMFCRibbonCategory吗 为了澄清,我想从类别中删除面板本身,而不是从面板中删除元素。我对CMFCRibbonPanel和CMFCRibbonCategory一无所知。在看到MSDN中的类声明后,我认为您可以从CMFCRibbonCategory获取对CMFCRibb
为了澄清,我想从类别中删除面板本身,而不是从面板中删除元素。我对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();
}
}
我对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,没有明显的方法可以从panels数组中删除面板。在我的例子中,我确实从头开始重建了类别。在CMFCRibbonCategory源代码中查找afxribboncategory.cpp,没有明显的方法从panels数组中删除panel。我想删除pPanel本身,而不是panel中的元素。顺便说一句:您应该使用whileppanel->GetCount{VERIFYpPanel->Remove0;}代替pPanel->RemoveAll;看,我知道这是3年前的事了,不管怎样,谢谢你在将来帮助我。我想删除pPanel本身,而不是面板中的元素。顺便说一句:您应该使用whileppanel->GetCount{VERIFYpPanel->Remove0;}代替pPanel->RemoveAll;看,我知道这是3年前的事了,不管怎样,谢谢你在未来帮助我。是的,我也最终得到了这个解决方案!我添加了连接请求!请在这里投票:我也是。但我并不介意,因为我想删除所有面板,所以我只添加了一个新类别,删除了旧类别。但仍然不如CMFCCategory::RemoveAllPanels那么好……是的,我也最终使用了这个解决方案!我添加了连接请求!请在这里投票:我也是。但我并不介意,因为我想删除所有面板,所以我只添加了一个新类别,删除了旧类别。但仍然不如CMFCCategory::RemoveAllPanels所能做到的那样好。。。