各种界面库介绍及比较

    技术2022-06-12  56

    详细界面库列表见http://home.pacbell.net/atai/guitool/

    如何选择界面库

    产品易用性 是否容易整合到现有应用程序中?是否容易在新的应用程序项目中应用?开发人员能否及时掌握并使用 产品稳定性 是否有足够多的示例演示控件库各个方面的功能特性 是否有众多的成功案例 是否一直有持续更新  界面库高效性 拖拽窗口,观察是否有明显的停顿感。 可在一个系统下,找一些知名软件比较,如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函数;  3Skin++ 安装窗口过程等类型Hook,准备截获应用程序所有窗口的创建事件;  4Skin++ 收到窗口创建等消息,根据类名、风格等一些条件来判断是否对该窗口进行子类化;  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 文件夹,打开里面的工程编译。 一共有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)

     

    在应用程序向导中选择界面风格,很简单的,我们得到了一个Office 2007风格的MFC程序:

     

    NewControls例子演示了这些控件的具体用法

     

     

     

     

     


    最新回复(0)