Winapi MFC功能区控件和AFX功能区上的WM功能区更改功能区类别
A具有带功能区控件的窗口。功能区控件中有三个类别。。。我有AFX\U WM\U上的处理程序\U更改\U功能区\U类别消息:Winapi MFC功能区控件和AFX功能区上的WM功能区更改功能区类别,winapi,mfc,Winapi,Mfc,A具有带功能区控件的窗口。功能区控件中有三个类别。。。我有AFX\U WM\U上的处理程序\U更改\U功能区\U类别消息: LPARAM CMainFrame::OnRibbonCategoryChanged(WPARAM wp, LPARAM lp) { CMFCRibbonCategory *pCategory=m_wndRibbonBar.GetActiveCategory(); int nCategory=m_wndRibbonBar.GetCategoryIndex(p
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
是虫子吗?如何使它在不同的平台上工作?我建议您使用类别名称而不是索引 例如:
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;
}
希望能有所帮助。这只是一个想法:在Windows 2008上,通常没有启用视觉主题。通常只启用Windows经典主题。也许这会有所不同。将Windows 7切换到经典主题,然后再次检查。无论如何