Переключить категорию ленты для пользователя

У меня есть программа, написанная на C ++ с использованием MFC. Он имеет ленточный интерфейс, офисный стиль.

Я хотел бы добиться следующего: предположим, что пользователь выделил категорию A ленты и нажал кнопку в этой категории, я бы хотел, чтобы моя программа переключилась на категорию B и выделил его для него в ответ на этот щелчок.

Это может показаться странным, но у меня действительно есть случай использования, когда пользователь может не осознавать, что ему нужно переключать категории, поэтому я хотел бы сделать это для него автоматически.

Можно ли это сделать?

2

Решение

Возможно, вы ищете CMFCRibbonBar::SetActiveCategory.

Есть похожий вопрос на CodeProject это включает в себя пример функции для программного выбора категории по имени. Воспроизводится ниже для информации:

int CYourClassName::ActivateCategoryByName( CString strCategoryName)
{
// Grab Pointer to MainFrame
CMainFrame* pMainFrame = ( CMainFrame*) AfxGetMainWnd();

// Grab Pointer to RibbonBar
CMFCRibbonBar* pmrb = &pMainFrame->m_wndRibbonBar;

// Get Category Count
int nCategoryCount = pmrb->GetCategoryCount();

// Scan Category
for ( int nCategoryNdx = 0; nCategoryNdx < nCategoryCount; nCategoryNdx++)
{
// Grab Pointer to Category
CMFCRibbonCategory* pmrc = pmrb->GetCategory( nCategoryNdx);

// Get Category Name
CString strName = pmrc->GetName();

// Check for Requested Category
if ( strName == strCategoryName)
{
pmrb->ShowCategory( nCategoryNdx, TRUE);
pmrb->SetActiveCategory( pmrc, TRUE);
return nCategoryNdx;
}
}

return -1;
}
1

Другие решения


По вопросам рекламы [email protected]