vs2008 office Ribbon 界面风格初总结

我每次做软件界面时,总是大费周折,老也弄不好这个vs2008 office Ribbon风格,今天查了些资料,又结合我最近做的红外数据处理的软件的界面,把Ribbon的固定的操作给小小总结下。

正如网上说的,这个Ribbon分为三个等级,从大到小分别为:Category(分类),pannel(面板)和元素(元素包括按钮,复选框等);

所以一般在一个vs2008MFC程序下,在CMainFrame中的InitialRibbon函数中会生成很多默认的一些菜单按钮项,注释掉不想要的,写我们自己需要的。

首先,定义一个Category,

代码:

strTemp = "图像";
CMFCRibbonCategory* pCategoryHome = m_wndRibbonBar.AddCategory(strTemp, IDB_FILESMALL, IDB_FILELARGE);

这个addCategory函数,后面两个参数,是要缴入图标的ID,这里vs2008资源里有很多自带的图标,选一组自己喜欢的,也可以自己画的图标,导入进去,至于自己画的导进去的我目前还没有尝试,等我下步做到那再写吧,现在随便选的图标组。

然后,生成面板,

代码:

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_IMAGE_ADJUST,strTemp,0,6));

strTemp = "图像保存";
pPanelView->Add(new CMFCRibbonButton(ID_IMAGE_SAVE,strTemp,0,3));

这里CMFCRibbionButton参数中,第一个参数是我们再自由menu里事先设定好的菜单按钮ID号,最后两个参数为bitmap图标组里对应的图标号,据说是小图标和大图标,这个大小如何控制我也不太清楚,主要改变最后一个参数控制改变不太图标。

这样一组分类界面就完成了。如果想再来一组,按照上面步骤,申请不同的category 及pannel和buttom就行了,但是不要忘记使用不同的变量。

把我程序的代码贴上了,

strTemp = "温度数据";
CMFCRibbonCategory *pCategoryHome2=m_wndRibbonBar.AddCategory(strTemp, IDB_FILESMALL,IDB_FILELARGE);

#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 ;

界面运行完了如下图,

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值