Удаление программно добавленного разделителя панелей в панели лент MFC

Я пишу приложение 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:
}

Есть ли функция, которую я могу вызвать, чтобы удалить разделитель, или я должен рассматривать ее как обычный элемент ленты?

Заранее спасибо!

1 ответ

Решение

Рассматривайте разделитель как обычный элемент ленты, это просто другой класс (CMFCRibbonSeparator) полученный из CMFCRibbonBaseElement учебный класс:

 // Delete the separator:
 pPanel->Remove( 2, TRUE );

 // Remove the two buttons:
 pPanel->Remove( 1, TRUE );
 pPanel->Remove( 0, TRUE );
Другие вопросы по тегам