Я пишу приложение MFC, которое использует панель «Лента», и большую часть ее я разработал в редакторе ленты. Однако для одного из моих представлений мне нужно программно добавить несколько кнопок, и я хотел бы добавить разделитель между ними.
Однако, когда я затем переключаю представления, я хочу иметь возможность программно удалять кнопки и разделитель, но я не уверен, как это сделать, пока у меня есть что-то похожее на следующее (псевдокод):
void AddButtons( CMFCRibbonBar& wndRibbonBar )
{
// Get the relevant panel:
CMFCRibbonCategory* pCategory = wndRibbonBar.GetCategory( 0 );
CMFCRibbonPanel* pPanel = pCategory->GetPanel( 0 );
// Insert the two buttons and add a separator:
CMFCRibbonButton* pButton = new CMFCRibbonButton( ID_TESTBUTTON1, _T("Test1") );
pPanel->Insert( pButton, 0 );
pButton = new CMFCRibbonButton( ID_TESTBUTTON2, _T("Test2") );
pPanel->Insert( pButton, 1 );
pPanel->AddSeparator();
}
void RemoveButtons( CMFCRibbonBar& wndRibbonBar )
{
// Get the relevant panel:
CMFCRibbonCategory* pCategory = wndRibbonBar.GetCategory( 0 );
CMFCRibbonPanel* pPanel = pCategory->GetPanel( 0 );
// Remove the two buttons:
pPanel->Remove( 1, TRUE );
pPanel->Remove( 0, TRUE );
// ToDo: Delete the separator:
}
Есть ли функция, которую я могу вызвать, чтобы удалить разделитель, или я должен рассматривать ее как обычный элемент ленты?
Заранее спасибо!
Рассматривайте разделитель как обычный элемент ленты, это просто другой класс (CMFCRibbonSeparator
) полученный из CMFCRibbonBaseElement
учебный класс:
// Delete the separator:
pPanel->Remove( 2, TRUE );
// Remove the two buttons:
pPanel->Remove( 1, TRUE );
pPanel->Remove( 0, TRUE );
Других решений пока нет …