在MainFrm中添加一个自定义消息:AFX_WM_ON_CHANGE_RIBBON_CATEGORY,(使用向导界面如下:)
MainFrame.cpp的Message Map中自动添加消息:
ON_REGISTERED_MESSAGE(AFX_WM_ON_CHANGE_RIBBON_CATEGORY, OnRibbonCategoryChanged)
然后,实现OnRibbonCategoryChanged方法:
LPARAM CMainFrame::OnRibbonCategoryChanged(WPARAM wp, LPARAM lp) { CMFCRibbonCategory *pCategory=m_wndRibbonBar.GetActiveCategory(); int nCategory=m_wndRibbonBar.GetCategoryIndex(pCategory); //... do something return 0; } nCategory变量存储当前激活Category的Index,范围从1开始,并非是0,Category的Index序号从左至右递增。