我在一个mfc中使用了office2007风格,在mainFrame中创建了不同的页中用不同的Rubbon,但是每个页对于一个View,
想让转换到不同页时怎么实现view的切换呢?切换view的函数已经用了。就是category这个有没有响应函数?
把我工程中界面的代码,贴上。
App中声明了三个模板
//定义模板
CMultiDocTemplate *m_pTemplateImage;
CMultiDocTemplate *m_pTemplateDataConv;
CMultiDocTemplate *m_pTemplateTempField;
Initial中:
m_pTemplateImage = new CMultiDocTemplate(IDR_IrDataProTYPE,
RUNTIME_CLASS(CIrDataProDoc),
RUNTIME_CLASS(CChildFrame), // 自定义 MDI 子框架
RUNTIME_CLASS(CImageView));
if (!m_pTemplateImage)
return FALSE;
AddDocTemplate(m_pTemplateImage);
//theApp.m_pTemplateImage->OpenDocumentFile(NULL);  m_pTemplateDataConv = new CMultiDocTemplate(IDR_MAINFRAME,
RUNTIME_CLASS(CIrDataProDoc),
RUNTIME_CLASS(CChildFrame), // 自定义 MDI 子框架
RUNTIME_CLASS(CDataConvView));
if (!m_pTemplateDataConv)
return FALSE;
AddDocTemplate(m_pTemplateDataConv);
//theApp.m_pTemplateDataConv->OpenDocumentFile(NULL); 
m_pTemplateTempField = new CMultiDocTemplate(IDR_MAINFRAME,
RUNTIME_CLASS(CIrDataProDoc),
RUNTIME_CLASS(CChildFrame), // 自定义 MDI 子框架
RUNTIME_CLASS(CTempFieldView));
if (!m_pTemplateTempField)
return FALSE;
AddDocTemplate(m_pTemplateTempField);
这个没有问题,在Mainframe中InitialRibbon中
strTemp = "图像";
CMFCRibbonCategory* pCategoryHome = m_wndRibbonBar.AddCategory(strTemp, IDB_FILESMALL, IDB_FILELARGE); //创建自己的面板
#pragma Region WFC;
strTemp = "导入图像视图面板";
CMFCRibbonPanel *pPanelView = pCategoryHome->AddPanel(strTemp,m_PanelImages.ExtractIcon(0)); strTemp = "导入图像";
pPanelView->Add(new CMFCRibbonButton(ID_IMAGE_OPEN,strTemp,0,1)); strTemp = "点选图像标志点";
pPanelView->Add(new CMFCRibbonButton(ID_SELECT_POINT,strTemp,0,4)); strTemp = "撤销标志点";
pPanelView->Add(new CMFCRibbonButton(ID_CANC_POINT,strTemp,0,5)); strTemp = "图像校正";
pPanelView->Add(new CMFCRibbonButton(ID_IMAGE_ADJUST,strTemp,0,6)); strTemp = "图像保存";
pPanelView->Add(new CMFCRibbonButton(ID_IMAGE_SAVE,strTemp,0,3));

#pragma end ; strTemp = "温度数据";
CMFCRibbonCategory *pCategoryHome2=m_wndRibbonBar.AddCategory(strTemp, IDB_FILESMALL,IDB_FILELARGE); //test view
//SwitchToView(theApp.m_pTemplateDataConv,RUNTIME_CLASS(CDataConvView));
//CMDIChildWnd *pMDIActive = MDIGetActive();//活动子窗口
//m_pDataConvView=(CDataConvView *)pMDIActive->GetActiveView();
//test#pragma Region WFC;
strTemp = "数据修正面板";
CMFCRibbonPanel *pPanelView2 = pCategoryHome2->AddPanel(strTemp,m_PanelImages.ExtractIcon(2)); strTemp = "读入红外温度";
pPanelView2->Add(new CMFCRibbonButton(ID_OPEN_IR_TEMP,strTemp,0,5)); strTemp = "读入传感器温度";
pPanelView2->Add(new CMFCRibbonButton(ID_OPEN_PROBE_TEMP,strTemp,0,8)); strTemp = "温度修正";
pPanelView2->Add(new CMFCRibbonButton(ID_TEMP_CONV,strTemp,0,7)); strTemp = "温度保存";
pPanelView2->Add(new CMFCRibbonButton(ID_TEMP_SAVE,strTemp,0,2));#pragma end ;
strTemp = "温度场";
CMFCRibbonCategory *pCategoryHome3=m_wndRibbonBar.AddCategory(strTemp,IDB_WRITESMALL,IDB_WRITELARGE);#pragma Region WFC;
strTemp = "选择要显示的温度";
CMFCRibbonPanel *pPanelView3 = pCategoryHome3->AddPanel(strTemp,m_PanelImages.ExtractIcon(2)); strTemp = "显示温度场";
pPanelView3->Add(new CMFCRibbonButton(ID_OPEN_IR_TEMP,strTemp,0,0)); strTemp = "温度场保存";
pPanelView3->Add(new CMFCRibbonButton(ID_OPEN_PROBE_TEMP,strTemp,0,1));
#pragma end ;
还有转换View函数,
这个也没问题,可是怎么让页切换到“温度数据”怎么响应切换view的函数?