Scenic Ribbon API概述
为了帮助程序员们能够轻松地在各种环境下实现Ribbon界面,从传统的菜单式界面过渡到Ribbon界面,针对不同的应用环境,微软给我们提供了多种技术方案供我们选择。除了之前我们在Visual Studio 2010新特性介绍文章中所介绍的针对MFC应用程序的各种Ribbon界面类之外,在Windows 7中,微软还为我们提供了用于为非托管代码(Native)应用程序创建Ribbon界面的Scenic Ribbon API的解决方案。另外,针对基于WPF的托管代码应用程序,微软还将提供另外的基于WPF的Ribbon界面解决方案。
图2 微软所提供的Ribbon界面解决方案
在前面的文章中,我们已经介绍了随着Visual Studio 2008 SP1一同发布的MFC Ribbon解决方案。在这篇文章中,我们重点介绍介绍一下随着Windows 7一同发布的Windows Scenic Ribbon API解决方案。
Scenic Ribbon API是一套基于COM的非托管API。通过这套API,我们可以为所有基于Windows的非托管应用程序创建Ribbon界面面板,添加Ribbon控件,处理Ribbon控件的各种动作,执行某种业务逻辑等等。而至于Ribbon界面的布局,各个控件的位置和属性等,则是通过基于XAML的xml文件来进行定义和描述的。编译器会将这个XML文件编译成相应的资源文件,头文件和二进制的BML文件。而Scenic Ribbon API最终会读取这些描述控件信息的文件并创建Ribbon界面。在业务逻辑层,Scenic Ribbon API提供了相应的Execute函数来处理所有控件的消息,在其中我们可以完成相应的业务逻辑。整个过程如下图所示:
图3 Scenic Ribbon API的工作流程
从图中我们可以看到,整个Scenic Ribbon API是基于MVC(Model-View-Controller)模式架构,高度分离的,这跟WPF的模式有些近似:通过业务逻辑和界面设计的分离,可以很好地在软件开发中进行分工,程序员专注于应用程序的业务逻辑,而UI设计师可以专注于界面的设计和用户体验的优化。
图4 新建Win32项目