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样例演示了这些控件的详细使用方法

  • 相关阅读:
    实现随机颜色
    为网站实现一个验证码
    vue.js帐号,密码,邮箱和移动手机号码正则验证
    从网址中截去主机名和参数
    vue.js判断网址参数是否有效
    创建windows service
    vue.js axios call api example
    vue.js mouse over change the image
    jQuery接收url的参数
    ms sql server排序
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/4307185.html
Copyright © 2011-2022 走看看