我每次做软件界面时,总是大费周折,老也弄不好这个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. 基于postfix一步一步构建Mailserver,支持虚拟用户,支持WebMail
  2. testing: mock object
  3. 2016年3月23日作业(项目进度管理、项目成本管理)
  4. web项目启动,运行方法
  5. NBA史上薪水最高球员排行榜
  6. python图片超链接_python自动获得网页上的所有超链接并全部截图
  7. 4g对讲机写码工具_极蜂智能网络对讲机 4G联网通话零距离
  8. clion变量配置_cygwin安装和clion配置
  9. 2021 年电工杯 B 题
  10. 【我的开源】股票软件简介+源码(蜗牛股票软件)
  11. (22) 基于动态时空图卷积神经网络的交通流预测
  12. Xposed框架的使用--简单入门
  13. 怎么注册免费苹果开发者账号?
  14. 【63测试20161111】【BFS】【DP】【字符串】
  15. PC端浏览器兼容性问题解决方案
  16. python中怎么计数_python怎么实现计数?
  17. python画笑脸图案-如何用Python画滑稽笑脸!
  18. omnet++ 第一个工程的创建
  19. 开源CRM+SaaS云服务的生态模式能否撬动中国管理软件市场?
  20. 学习笔记:分库分表之中间件Mycat实战

热门文章

  1. java基础学习IO流之字节流 十一 -4
  2. Oracle 数据库一体机的崛起
  3. Unity Render Streaming-三维地球
  4. Ue0:从零开始的虚幻生活(五)
  5. 一文学会设计模式,太详细了!
  6. MOBILEVIT: LIGHT-WEIGHT, GENERAL-PURPOSE, AND MOBILE-FRIENDLY VISION TRANSFORMER
  7. 预计明年通车|我国首条跨海高铁—福厦高铁,主体工程全线贯通
  8. python金融衍生品_什么是金融衍生品,金融衍生品有哪些?
  9. ASP.NET的IIS和IIS express配置的老大难问题
  10. 我要搬家:男朋友出轨了,小三竟然是我闺蜜