A有一个带有Ribbon控件的窗口。功能区控件有三个类别...我有AFX_WM_ON_CHANGE_RIBBON_CATEGORY消息的处理程序:
LPARAM CMainFrame::OnRibbonCategoryChanged(WPARAM wp, LPARAM lp)
{
CMFCRibbonCategory *pCategory=m_wndRibbonBar.GetActiveCategory();
int nCategory=m_wndRibbonBar.GetCategoryIndex(pCategory);
return 0;
}
当我在Windows7机器上启动此应用程序时,我的类别有索引:1,2,3,但如果我在Windows Server 2008上启动相同的应用程序,则索引将为0,1,2 ......
是BUG吗?如何让它在不同的平台上运行?
答案 0 :(得分:1)
我建议您使用类别名称而不是其索引。
示例:
LPARAM CMainFrame::OnRibbonCategoryChanged(WPARAM wp, LPARAM lp)
{
CMFCRibbonCategory *pCategory=m_wndRibbonBar.GetActiveCategory();
CString strCatName(pCategory->GetName());
if (strCatName.CompareNoCase(_T("Home")) == 0)
{
// Do something
}
else if (strCatName.CompareNoCase(_T("My Category")) == 0)
{
// Do something
}
return 0;
}
希望它可以提供帮助。