zoukankan      html  css  js  c++  java
  • 各种界面库介绍及比較

    具体界面库列表见http://home.pacbell.net/atai/guitool/

    怎样选择界面库

    • 产品易用性
    1. 是否easy整合到现有应用程序中?是否easy在新的应用程序项目中应用?
    2. 开发者是否能及时掌握并使用
    • 产品稳定性
    1. 是否有足够多的演示样例演示控件库各个方面的功能特性
    2. 是否有众多的成功案例
    3. 是否一直有持续更新
    •  界面库高效性
    1. 拖拽窗体,观察是否有明显的停顿感。
      可在一个系统下,找一些知名软件比較,如QQ/MSN等。假设有明显差异
    2. 拖拽窗体,观察界面控件是否有明显闪烁 。
    3. 软件启动速度 。
      界面库产品应该对图片等资源载入做优化,以尽可能的降低界面库载入等带来的时间开销。也能够通过比較软件启动速度来比較界面库的效率。
    4. 软件色调调整时的效率 。

    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安装)。 

    1. BCGControlBar专业版是MFC的一个扩展库,可用来构建相似于Microsoft® Office 2000/XP/2003/2007/2010、Microsoft Visual Studio等知名产品的高级用户界面,比如:日历、网格、编辑和甘特图等。包括了200多个精心设计、測试和具有完备文档的MFC扩展类。

    2. BCGControlBar Library .NET Edition是使用语言C++/CLI(公共语言基础结构)编写的一个工具包,其代码为百分之百的托管代码。使用本产品,须要安装Microsoft .NET Framework 2.0版或者更高版本号。
    3. 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样例演示了这些控件的详细使用方法

  • 相关阅读:
    JID 2.0 RC4 发布,高性能的 Java 序列化库
    FBReaderJ 1.6.3 发布,Android 电子书阅读器
    Arquillian 1.0.3.Final 发布,单元测试框架
    JavaScript 的宏扩展 Sweet.js
    Hypertable 0.9.6.5 发布,分布式数据库
    JRuby 1.7.0 发布,默认使用 Ruby 1.9 模式
    httppp 1.4.0 发布,HTTP响应时间监控
    Redis 2.6.0 正式版发布,高性能K/V服务器
    OfficeFloor 2.5.0 发布,IoC 框架
    XWiki 4.3 首个里程碑发布
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/4307185.html
Copyright © 2011-2022 走看看