MFC入门之 Ribbon界面设计

这一生的挚爱 提交于 2020-11-20 01:42:57

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

MFC Ribbon界面设计

  看到它与默认Ribbon样式的区别:

  工具自己设计,MFC提供的Ribbon控件基本都用上了;图片(位图)也是原资源没有的

  那到底怎么实现呢?

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

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

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

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

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

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

有两个方法:一是自己动手制作,二是利用现成的组件ToolKit Pro,BCGControlBar,QitanRibbon后文会有详细介绍!

 一、 制作工具栏BitMap

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

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

MFC Ribbon界面设计

  看到木有,跟程序默认生成的几个位图很像啊,内牛满面啊

  将这个位图加载到资源中,ID改为IDB_BIG

   修改Ribbon内的按钮图标

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

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

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

实现下拉菜单

  按钮属性中有个行为的属性,在里面添加相应的菜单(或间隔符)即完成了类似下拉菜单

  还有一些快捷方式的按键(两个向下的箭头、最左上角的图标按钮)也可以设置它们的功能项

  我做出来的界面如下所示

MFC Ribbon界面设计

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

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

  所以必须将菜单栏也制作完整,给其添加事件消息,将Ribbon中按钮的ID改为对应菜单的ID。菜单不在界面中显示出来不代表它就没用,没它还不行,不知道以后能不能摆脱菜单直接在Ribbon按钮上添加事件。

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

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

C++代码
  1. HICON m_hIcon;
  2. m_hIcon = AfxGetApp()->LoadIcon(IDI_HAHA);
  3. SetIcon(m_hIcon, TRUE); // Set small icon
  4. //SetIcon(m_hIcon, FALSE); // Set big icon

二、利用组件

在平时练习的时候我们可以自己手动进行,但是一旦接受一些项目,应用程序开发等,对界面的要求就会高出许多。这时候就有必要借助这些“半成品”实现界面美化提升效率。这里简单介绍一下,具体可点进去查看每个的详情以及教程,案例!

Toolkit Pro

Codejock软件公司的Xtreme Toolkit Pro是屡获殊荣的VC界面库,是MFC开发中最全面界面控件套包,它提供了Windows开发所需要的11种主流的Visual C++ MFC控件,包括Command Bars、Controls、Chart Pro、Calendar、Docking Pane、Property Grid、Report Control、Shortcut Bar、Syntax Edit、Skin Framework 和Task Panel。(点这下载)

BCGControlBar

BCGControlBar ("Business Components Gallery ControlBar")是MFC扩展库,使您可以创建具有完全自定义选项(功能区、可自定义工具栏、菜单等)以及一组专业设计的丰富Microsoft Office和Microsoft Visual Studio的应用程序 GUI控件,例如图表、日历、网格、编辑器、甘特图和许多其他控件。
BCGControlBar库拥有500多个经过全面设计、测试和充分记录的MFC扩展类。可以轻松地集成到你的应用程序中,并为你节省数百个开发和调试时间。(点这下载)

QtitanRibbon:

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

本文转载自鸡啄米

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!