我每次做软件界面时,总是大费周折,老也弄不好这个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 ;

界面运行完了如下图,

vs2008 office Ribbon 界面风格初总结相关推荐

  1. Winform开发框架之Office Ribbon界面

    Winform开发框架之Office Ribbon界面 在前面几篇文章介绍我的Winform框架随笔文章,包括有<Winform开发框架之字典数据管理>.<Winform开发框架之权 ...

  2. Visual C++ 2010创建Ribbon界面(上)

    随着Office 2007的发布,它改变了以往传统的下拉式菜单用户界面,取而代之的是全新的被称之为"Ribbon"的固定式工具栏界面.微软声称这种新的用户界面能够使用户更容易地使用 ...

  3. 创建Ribbon界面

    Visual C++ 2010创建Ribbon界面(上) 2009-08-19 14:22:57|  分类: VC++程序设计 [IT168 专稿]随着Office 2007的发布,它改变了以往传统的 ...

  4. Qt的纽带风格界面实现(最新的Office Ribbon风格)

    Qt的纽带风格界面实现(最新的Office Ribbon风格) 之前有朋友已经做了360风格的自定义界面,非常棒,也帮助了不少开发的朋友.近期我也用Qt做了一些界面框架和风格方面的工作,主要是客户端软 ...

  5. qtcreator 界面样式_Office Ribbon 界面开发入门教程:如何用Qt实现Office界面样式

    Ribbon是什么? Ribbon是一种以面板及标签页为架构的用户界面.相当于它是一个收藏了命令按钮和图标的面板(把命令组织成一组"标签",每一组包含了相关的命令.每一个应用程序都 ...

  6. 开源WinForms界面开发框架Management Studio 选项卡文档 插件 Office 2007蓝色风格 后台线程...

    Management Studio是我在WinForms小项目开发过程中搭建起来的一个插件式结构的应用程序框架,因为简单灵活又容易扩展,现在将它开源供读者参考. 跑起来的效果图如下所示,具备选项卡式多 ...

  7. SharePoint 2010新体验2 – Ribbon界面

    使用过Office 2007的同学一定知道,Office 2007引入了一种全新的界面模式:Ribbon.在SharePoint 2010中,界面风格也将使用类似的Ribbon界面.Ribbon界面所 ...

  8. delphi下实现ribbon界面的方法(一)

    delphi下实现ribbon界面的方法(一) office 2007和2010是现在大多数人经常使用的办公软件,几乎每天都在使用.因此,在软件中如果使用类office的界面样式,客户用着非常习惯,而 ...

  9. (转载)VS2010/MFC编程入门之五十二(Ribbon界面开发:创建Ribbon样式的应用程序框架)...

    上一节中鸡啄米讲了GDI对象之画刷CBrush,至此图形图像的入门知识就讲完了.从本节开始鸡啄米将为大家带来Ribbon界面开发的有关内容.本文先来说说如何创建Ribbon样式的应用程序框架. Rib ...

最新文章

  1. PEInfo编程思路讲解01 - 工具篇01|解密系列
  2. 传统的Linux中IPC通信原理
  3. Jeff Atwood倾情推荐——程序员必读之书
  4. linux搭建交叉编译器,手把手教你一步一步搭建mips-linux-gcc-4.4.0交叉编译工具
  5. 在没有插件的情况下为Chrome设置Proxy
  6. Wireshark常用封装过滤规则
  7. wordpress中文路径出现404错误的解决办法
  8. 基于SAP HANA 的SAP系统 安装
  9. 新型计算机作文1000,科幻的作文1000字(精选9篇)
  10. 新手与GitHub——菜鸟教程
  11. 有一个测试微信删除软件叫wool,如果出现这三种情况,便可以删除这些微信好友,此操作适用所有人...
  12. 人类社会——为什么要有秩序
  13. 国家级贫困县摘帽情况分省分年统计(832个)
  14. 链霉亲和素修饰的载玻片Streptavidin coated glass slides(齐岳生物)
  15. 工商银行顾欣:分布式全链路灰度发布的探索与实践
  16. Java的数据类型分类?
  17. 用计算机演奏123我爱你,新乐尘符表白圣歌《123我爱你》[FLAC格式]
  18. Firefox火狐设置
  19. 软件测试的魅力!我为什么没有选择做开发
  20. 用java求一组数的平均值

热门文章

  1. 杭电OJ 1056 float 和double 相等以及大小的比较
  2. AIX 存储挂载MPIO多路径配置问题导致磁盘无法使用
  3. 黑马程序员——Java字符流、字节流IO流
  4. Office 2010 更换序列号方法
  5. freemarker简介
  6. 深蓝学院-视觉SLAM课程-第7讲笔记
  7. FIND函数的使用方法
  8. signature=faf2836a77ce62ffe91d6908c71a734e,France firms up order for MRTT aircraft
  9. 《C语言报错》链接错误LNK2001-----error LNK2001: unresolved external symbol _clrscr
  10. python之随机数函数