首页 > 代码库 > 各种界面库介绍及比較
各种界面库介绍及比較
具体界面库列表见http://home.pacbell.net/atai/guitool/
怎样选择界面库
- 产品易用性
- 是否easy整合到现有应用程序中?是否easy在新的应用程序项目中应用?
- 开发者是否能及时掌握并使用
- 产品稳定性
- 是否有足够多的演示样例演示控件库各个方面的功能特性
- 是否有众多的成功案例
- 是否一直有持续更新
- 界面库高效性
- 拖拽窗体,观察是否有明显的停顿感。
可在一个系统下,找一些知名软件比較,如QQ/MSN等。假设有明显差异 - 拖拽窗体,观察界面控件是否有明显闪烁 。
- 软件启动速度 。
界面库产品应该对图片等资源载入做优化,以尽可能的降低界面库载入等带来的时间开销。也能够通过比較软件启动速度来比較界面库的效率。 - 软件色调调整时的效率 。
Skin++
商业换肤软件(www.uipower.com)
基于WIN32的界面库,上海勇进公司运作。05年公布第一个版本号。去掉了窗体默认的非客户区,导致非常window默认的API函数失效。并且一些关键的技术点存在BUG,比方web控件的弹出菜单有BUG。长处:两行代码换肤 缺点:有点慢
1.1 Skin++ 特性
◆ 换肤彻底,包含系统对话框、Windows标准控件和第三方控件如BCG;
◆ 支持全部Win32/Win64平台,VC/VB/Delphi/C++Builder/VS.Net/PowerBuilder;
◆ 使用简单,仅仅需一行代码实现总体换肤;
◆ 可视设计,提供皮肤设计工具,可自行设计皮肤,所见即所得的设计开发环境;
◆ 色调变换,支持皮肤色调变换,每一套皮肤都拥有N种色调风格;
◆ 皮肤资源海量,提供皮肤转换工具,可将主流的皮肤主题转换成Skin++格式;
◆ 支持Unicode,提供多种编码格式;
◆ 界面与业务逻辑彻底分离;
1.2 Skin++ 实现原理
Skin++属于第二代的外挂式的界面库。
Skin++ 提供了SkinBuilder 工具将全部控件的资源全部设计成为一个独立的文件,便于在应用程序外部独立地进行增删改操作。
Skin++ 主要採用Hook与子类化技术来实现应用程序的自己主动换肤。
1.3 Skin++换肤的大致流程
1、应用程序启动,载入Skin++库;
2、运行Skin++载入皮肤文件API函数;
3、Skin++ 安装窗体过程等类型Hook,准备截获应用程序全部窗体的创建事件;
4、Skin++ 收到窗体创建等消息,依据类名、风格等一些条件来推断是否对该窗体进行子类化;
5、窗体子类化即能够收到该窗体全部的消息;
6、依据不同的消息进行对应的处理。如:WM_PAINT消息,Skin++对其进行画图的操作;
7、画图中须要用到图片、文字、字体等资源即依据ID、名称等条件到皮肤文件里去查找;
8、控件运行过程中,各种界面行为的变化均可通过处理消息与API函数来进行;
9、控件销毁时,Skin++即对其进行反子类化,将Skin++换肤前的消息过程地址又一次设成当前的消息过程;
10、控件全部的消息不再经过Skin++消息处理函数。控件运行其默认的窗体消息处理函数;
11、应用程序退出,Skin++库被卸载,在卸载之前Skin++获得通知,Skin++便在内部运行Hook的反初始化与资源文件的清理。
DirectUI
商业界面控件(www.directui.com)
DirectUI开放式界面开发库,提供平台加插件的开发模式,能够方便的对控件进行扩展。DirectUI支持多种开发语言及平台,比方VC,VB,C#,Delphi,C++Builder,PowerBuilder等等。提供所见即所得的开发工具DirectUI Builder2010,拖拽式界面开发模式,支持JavaScript脚本控制界面,将逻辑和界面彻底分离, 支持Alpha多图层混合特效,支持多种皮肤对象布局规则,支持多种图片格式资源,比如BMP, PNG, JPG, GIF等等,支持动态换肤,与VS IDE无缝集成。
相同是上海勇进的产品。据内部人员说是从微软挖一个技术牛人来开发的,内核是借鉴了微软的DUI技术。该界面库个人觉得也存在非常多问题。比方,他们限制了窗体的WM_SIZE消息,当窗体大小发生变化的时候,会出现虚框,不绘制来提高效率,严重影响用户体验。
bcgcontrolbar
介绍
商业库,bcg授权了微软在VS 2008中使用BCG的部分控件及功能,可是微软并没有直接将BCG集成进VS 2008中,而是做成单独的扩展资源包,须要单独下载(下载sp1安装)。
BCGControlBar专业版是MFC的一个扩展库,可用来构建相似于Microsoft® Office 2000/XP/2003/2007/2010、Microsoft Visual Studio等知名产品的高级用户界面,比如:日历、网格、编辑和甘特图等。包括了200多个精心设计、測试和具有完备文档的MFC扩展类。
- BCGControlBar Library .NET Edition是使用语言C++/CLI(公共语言基础结构)编写的一个工具包,其代码为百分之百的托管代码。使用本产品,须要安装Microsoft .NET Framework 2.0版或者更高版本号。
- BCGSoft Professional Editor(BCGSoft专业版编辑程序)是一款能让您将高级编辑控制组件合并到不论什么基于MFC的应用程序的MFC扩展库,提供相似vc编辑器的各种特效功能,如语法加亮功能、色块、Intelli Sense、字符图片支持等。
Vc 2008 Feature Pack
2008年01月07日,MS推出了 Visual C++ Feature Pack Beta 下载。这次的Feature Pack 是专门针对VC 库的一个扩充。扩充分为双方面,一方面是MFC 的界面控件库;还有一方面是对ISO C++ Standard 2003 的TR1扩充。这个增强包眼下仅仅有英文版,其它语言版本号要等到VS2008的SP1了。
部署:
首先须要到微软的下载中心 下载 Visual C++ Feature Pack Beta 下载这个303M的大家伙;
而后,你须要在机器上安装了英文版的Visual Studio 2008,别的语种Feature Pack不支持,全然安装VS2008,就连SQL Sever 2005 Express 和 水晶报表的基本组件也不能少!
假设您是Vista,千万别忘了"Run as Administrator"。HotfixInstaller服务将启动,并安装Feature Pack更新。HotfixInstaller服务有可能没有原因的挂在那里长时间不动(不是Not Responding状态),仅仅要直接在Task Manager中结束掉进程,并又一次执行安装包就能够了。
从下载中心找到了 Visual C++ 2008 Sample Library ,5M,下载,安装。在/Microsoft Visual Studio 9.0/Samples/1033 下找到AllVCLanguageSamples.zip 展开,找到Feature Pack 目录,打开里面的project编译。 一共同拥有34个样例。
在界面方面,集成了BCGSoft的界面控件,如今能够利用VC2008,轻松创建VS2005,Office 2007风格的应用程序界面了。同一时候,添加了部分控件。
The MFC Feature Pack library supports new features in the following areas:
Menus
Toolbars
Panes
Ribbon Control
Outlook Alert
Controls
Dialog Boxes
Customization
Visualization
Special Features
在C++方面,实现了TR1,有可能在下一个C++标准C++0x中得到体现。主要添加了部分容器和正則表達式。
<array>
<functional> (TR1)
<memory> (TR1)
<random>
<regex>
<tuple>
<type_traits>
<unordered_map>
<unordered_set>
<utility> (TR1)
在应用程序向导中选择界面风格,非常easy的,我们得到了一个Office 2007风格的MFC程序:
NewControls样例演示了这些控件的详细使用方法
各种界面库介绍及比較