mfc实现计算器的平方功能_我,靠这教程实现第一个完整Ribbon界面,巨详细!码它...

9fa2734dcd58925d78f86c9436eb4297.png

Ribbon是类似于office2007样式的界面,它替代了传统的MFC程序里的菜单和工具栏MFC默认生成的Ribbon功能少,需要我们自己添加一些控件和图片等元素使界面好看。

5f364317371fcc9adb18e660d26ad454.png

如何实现呢?

  可以注意到的是:类别由面板组成,面板由按钮或文本编辑框或进度条等控件组成

  按钮都是有图片和文字组成,按钮通过按钮集合可以产生类似于下拉菜单的作用

  观察这些按钮,可以发现有两类:小图标的按钮和大图标的按钮

  小图标:像素16×16,32位

  大图标:像素32×32,32位

  关键问题是如何制作这些BitMap以及如何将他们加载到Ribbon界面中。

下面介绍两种方法实现如上功能:

01

1. 制作工具栏BitMap

在网上找了IconWorkshop这个软件,可以制作icon图标,也可以用多个icon图标制作位图BitMap。这正是我想要的功能

    自己不会美工,所以在网上找了些素材,做了以下一个工具栏样的32×32像素32位的BitMap

8e6760b75f74fb5f77e01e864e113d6f.png

2.修改Ribbon内的按钮图标

首先,修改类别属性,Large Images和Small Images,Large Images就是大图标,Small Images是小图标。在Large Images中的下拉菜单中选择IDB_BIG。

   然后修改面板中的按钮属性,在Large Images属性选项中选择一个合适的图标即可

  小图标也是一样的道理,修改各自Small Images属性即可

3.实现下拉菜单

按钮属性中有个行为的属性,在里面添加相应的菜单(或间隔符)即完成了类似下拉菜单;还有一些快捷方式的按键也可以设置它们的功能项。做出来的界面如下所示:

015887d46f000b87ff3c9b9bb304c136.png

4.将按钮ID和菜单上的ID匹配

Ribbon中的菜单ID是不能自己设置的,必须绑定在某个菜单上,对菜单的事件响应就是对响应的Ribbon上按钮的响应,所以按了Ribbon界面上的某个按钮就等同于按钮对应的某个菜单

5.修改最小化工具栏上的图标

上图虽然修改了左上角的按钮图标,但是电脑工具栏上还是现实的MFC图标,使用下面代码进行修改

C++代码:

HICON m_hIcon;m_hIcon = AfxGetApp()->LoadIcon(IDI_HAHA);SetIcon(m_hIcon, TRUE); // Set small icon//SetIcon(m_hIcon, FALSE); // Set big icon

02

在平时练习的时候我们可以自己手动进行,但是一旦接受一些项目,应用程序开发等,对界面的要求就会高出许多。这时候就有必要借助这些“半成品”实现界面美化提升效率。

QtitanRibbon:

QtitanRibbon是一款遵循Microsoft Ribbon UI Paradigm for Qt技术的Ribbon UI组件,QtitanRibbon致力于为Windows、Linux和Mac OS X提供功能完整的Ribbon组件。(点击查看详情)

  • 主流的Office风格,助你提高产品受欢迎度

  • 全面跨平台,加速项目交付,易于后期维护

  • 与Qt Designer深度集成,适用任何Qt商业项目开发

Toolkit Pro:

是MFC开发中最全面界面控件套包,它提供了Windows开发所需要的11种主流的Visual C++ MFC控件。(点击查看详情)

往期精选

1.QtitanRibbon:完整的Ribbon组件,为你提供现代化办公界面解决方案

2.QtitanRibbon:完整的Ribbon组件,为你提供现代化办公界面解决方案

3.外企开发者:Toolkit Pro让我们轻松交付高质量的现代GUI,专注于功能构建

4.SpreadJS v14.0:全面强化可视化插件,只需“拖拉拽”就能让数据“立”起来

5.慧都17周年庆 软件正版化交付我们放价又送礼

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值