转自:http://www.jizhuomi.com/software/253.html

前面一节为大家简单介绍了如何创建Ribbon样式的应用程序框架,本节教程就来初步讲讲怎样为Ribbon Bar添加Ribbon控件。

VS2010为Ribbon界面开发提供了Ribbon Designer,通过它我们可以为Ribbon Bar添加各种Ribbon控件、设置控件属性和进行界面布局。

Ribbon的界面元素可以分为类别、面板和基本控件(按钮、文本编辑框等),类别由面板组成,面板又由按钮、文本编辑框等基本控件组成。

下面以实例的方式讲解Ribbon控件的添加方法和属性,这样比较直观。此实例还是在上一节中创建的Example52工程的基础上进行修改。

1、打开Example52工程,在资源视图Resource View中,展开Example52->Example52.rc->Ribbon,在Ribbon节点下,我们看到有一个系统自动生成的IDR_RIBBON,双击IDR_RIBBON节点,就可以在中间区域打开Ribbon Designer,如下图:

上图中,Home(主页)标签下的整个界面就是类别,Clipboard(剪贴板)和View(视图)对应的就是面板,每个面板都有一些按钮、复选框等基本控件。

2、我们要向Ribbon界面中添加控件的话,也需要从Toolbox给出的Ribbon控件列表中选择控件拖入Ribbon bar。点击View菜单下的Toolbox,就会显示出Toolbox视图。下图就是Ribbon Designer的Toolbox:

虽然与以前我们用的Toolbox有些不同,但还是很相似的。上图的Toolbox中的Category就是类别,Panel就是面板,其他的大部分都是基本控件。

3、在Toolbox中选择Category拖入Ribbon bar,放到Home类别的后面,可以看到它的默认名称为“Category1”,并且默认带了一个面板“Panel1”。这里我们选择“Category1”标签,右键点击“Properties”,在显示出的属性页中,修改Caption属性为“Function”。然后选择“Panel1”面板,以同样的方法修改其Caption属性为“Big Button”。

4、接下来我们再为“Function”类别添加一个新面板。在Toolbox中选择Panel拖到“Function”类别下,放到“Big Button”面板后面,Caption属性修改为“Small Button”。

5、再往“Big Button”面板中添加一个按钮控件。在Toolbox中选择Button拖入“Big Button”面板中,Caption修改为“Open”。以同样的方式往“Small Button”面板中添加两个按钮控件,Caption分别修改为“Click”和“Check”。此时的Ribbon bar如下图所示:

6、通过与Home下的按钮对比我们发现,新添加的几个按钮不太美观,因为没有加图片。那么怎样为按钮加图片呢?

观察发现,Home下的按钮的图标有两种:大图标和小图标。实际上大图标是像素为32×32的图标,小图标是像素为16×16的图标。鸡啄米为三个按钮制作了两套图像序列,每个图像序列都由三个图标组成,第一个图像序列由三个大图标组成,第二个图像序列由三个小图标组成。如下面的两个图:

大图标(newicons-32.bmp)

小图标(newicons-16.bmp)

要得到这样的图像序列,可以先找到每个图标,然后使用IconWorkshop等工具制作成图像序列即可。

将两个图片都复制到目录...\Example52\Example52\res下,然后在工程中Resource View资源视图的Example52.rc->Bitmap上点右键,选择“Add Resource”,弹出Add Resource对话框,在Add Resource对话框左侧的树中选择“Bitmap”,然后点击“Import”按钮,选择newicons-32.bmp文件后就成功导入了大图标文件,ID默认为IDB_BITMAP1。以同样的方式导入小图标文件newicons-16.bmp,ID默认为IDB_BITMAP2。

在“Function”类别的属性页中可以看到有Large Images和Small Images两个属性,它们就是用来设置本类别下控件所要使用的大图标序列和小图标序列的。这里我们将Large Images属性设为IDB_BITMAP1,Small Images属性设为IDB_BITMAP2。

然后我们为Open按钮设置图片。在Open按钮的属性页中有Image Index和Large Image Index两个属性,分别是其小图标在小图标序列中的索引和其大图标在大图标序列中的索引,这里我们设置其图标为大图标,且为大图标序列中的第一个,那么直接设置Large Image Index属性为0,也可以通过在选择Large Image Index属性的编辑框后出现的浏览按钮上点击,弹出Image Collection对话框来选择图标。

再为Click按钮和Check按钮设置小图标。将Click按钮的Image Index属性设置为1,Large Image Index属性仍为-1,Check按钮的Image Index属性设置为2,Large Image Index属性也保持为-1。

7、编译运行程序,最终界面的Function类别视图如下:

因为上述三个按钮都没有添加任何事件的响应函数,所以都是灰色的。

转载于:https://www.cnblogs.com/Tang-tangt/p/9486969.html

VS2010-MFC(Ribbon界面开发:为Ribbon Bar添加控件)相关推荐

  1. VS2010/MFC编程入门之五十三(Ribbon界面开发:为Ribbon Bar添加控件)

    前面一节中鸡啄米为大家简单介绍了如何创建Ribbon样式的应用程序框架,本节教程就来初步讲讲怎样为Ribbon Bar添加Ribbon控件. VS2010为Ribbon界面开发提供了Ribbon De ...

  2. mfc入门基础(四)对话框添加控件、创建对话框类和为对话框控件添加变量

    参考博客:VS2010/MFC编程入门之七(对话框:为对话框添加控件)-软件开发-鸡啄米 VS2010/MFC编程入门之八(对话框:创建对话框类和添加控件变量)-软件开发-鸡啄米 基于基础(三)中写的 ...

  3. MFC界面开发工具BCG v31.1 - 控件功能增强

    亲爱的BCGSoft用户,我们非常高兴地宣布BCGControlBar Professional for MFC和BCGSuite for MFC v31.1正式发布!此版本包括自动隐藏滚动条.图表控 ...

  4. VS2010/MFC编程入门之二十三(常用控件:按钮控件的编程实例)

    上一节VS2010/MFC编程入门教程中鸡啄米讲了按钮控件Button.Radio Button和Check Box的基本用法,本节就继续讲按钮控件的内容,通过一个实例让大家更清楚按钮控件在实际的软件 ...

  5. Qt-C++基础界面开发(2- 简单Display Widget控件和Item Widget控件的使用)

    Qt-C++基础界面开发 1 Display Widget控件的简单使用 1.1 label控件的基本操作 1.2 textBrowser控件的基本操作 1.3 LCD Number控件的基本操作 1 ...

  6. VS2010/MFC编程入门之二十(常用控件:静态文本框)

    上一节鸡啄米讲了颜色对话框之后,关于对话框的使用和各种通用对话框的介绍就到此为止了.从本节开始鸡啄米将讲解各种常用控件的用法.常用控件主要包括:静态文本框.编辑框.单选按钮.复选框.分组框.列表框.组 ...

  7. (转载)VS2010/MFC编程入门之五十四(Ribbon界面开发:使用更多控件并为控件添加消息处理函数)...

    上一节中鸡啄米讲了为Ribbon Bar添加控件的方法.本节教程鸡啄米将继续完善前面的实例,讲解一些稍复杂的控件的添加方法,及如何为它们添加消息处理函数. 一.为Ribbon Bar添加更多Ribbo ...

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

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

  9. 【MFC】Ribbon界面开发(二)

    01.目录 目录 01.目录 02.本文内容 03.Ribbon实例 04.本文小结 02.本文内容 前面一节中为大家简单介绍了如何创建Ribbon样式的应用程序框架,本节就来初步聊聊怎样为Ribbo ...

  10. 在VS2010/MFC中如何对对话框添加控件

    创建对话框资源需要创建对话框模板.修改对话框属性.为对话框添加各种控件等步骤.而如何为对话框添加控件直接影响到界面的美观和开发人员的工作效率.本人将为大家介绍如何为对话框添加控件的详细步骤. 方法/步 ...

最新文章

  1. AngularJs表单自动验证
  2. 算法也是颜值控,Twitter AI更青睐肤白貌美图
  3. NanoPi NEO Air使用六:使用摄像头
  4. 关于编码ansi、GB2312、unicode与utf-8的区别
  5. ALV分类合计功能实现
  6. .NET Core开发:项目实践
  7. python时间函数报错_Python Day11-LEGB-global-时间函数
  8. 数据结构与算法--数字在排序数组中出现次数
  9. 这家公司把三星、联想、微软等7家公司给告了 侵犯其触摸屏专利
  10. xgboost多分类原理_XGboost原理基础之梯度提升树
  11. System V 共享内存 和 系列函数
  12. KingTable 是表格动态列插件
  13. QueryRunner实战(query_update)、BeanList\BeanHandler、MapList\MapHandler、ScalarHandler
  14. 高级API 快速入门之第八章 多线程02
  15. cc直播怎么显示服务器,CC直播像素杯四大服务器严阵以待 MC精彩赛事即刻开启...
  16. Android总结笔记04:仿QQ空间登录UI,解决软键盘弹出挡住输入框的问题
  17. 阿里热修复方案Sophix
  18. 22种手机使用中的常见问题及处理方法
  19. 去掉网页从网页中拷贝到word中段落带有的背景颜色
  20. 【实验】阿里云大数据助理工程师认证(ACA)- ACA认证配套实验-03-MaxCompute内置函数

热门文章

  1. centos安装bzip2
  2. 智慧城市智能交通系统建议方案
  3. yolov3选取正负样本
  4. cad画计算机网络图,CAD迷你家装五步快速绘制平面图教程
  5. cr2格式是什么意思?cr2格式用什么软件打开?cr2格式怎么转换成jpg
  6. unity 自定义管线SRP 学习笔记(一)搞懂WHY WHAT HOW
  7. 抖音小店无货源,出现退货的情况怎么处理?千万别大意
  8. 医疗器械app软件开发功能明细
  9. esxi install DS3615XS
  10. mapboxgl 互联网地图纠偏插件(二)