精华内容
下载资源
问答
  • DirectUI

    2014-09-11 17:30:28
    DirectUI
  • directui

    2019-09-29 00:46:32
    DirectUI DirectUI意为直接在父窗口上绘图(Paint on parent dc directly)。即子窗口不以窗口句柄的形式创建(windowless),只是逻辑上的窗口,绘制在父窗口之上。微软的“DirectUI”技术广泛的应用于Windows XP,...

    DirectUI   

    DirectUI意为直接在父窗口上绘图(Paint on parent dc directly)。即子窗口不以窗口句柄的形式创建(windowless),只是逻辑上的窗口,绘制在父窗口之上。微软的“DirectUI”技术广泛的应用于Windows XP,Vista,Windows 7,如浏览器左侧的TaskPanel,控制面板导航界面,Media Player播放器,即时通讯工具MSN Messager等。   

    DirectUI好处在于可以很方便的构建高效,绚丽的,非常易于扩展的界面。国外如微软,国内如腾讯,百度等公司的客户端产品多采用这种方式来组织界面,从而很好的将界面和逻辑分离,同时易于实现各种超炫的界面效果如换色,换肤,透明等。

    DirectUI 旨在满足客户端界面快速开发的需要,同时融入业界前沿的皮肤技术,为用户创建更加高效,专业的界面。   

    2.1 DirectUI 主要特性   

    ◆ 支持皮肤对象的布局   

    ◆ 支持皮肤脚本(JavaScript)控制,可以让界面与逻辑彻底分离   

    ◆ 支持bmp、png、jpg、gif、tga等图片格式   

    ◆ 支持多图层Alpha混合特效   

    ◆ 提供界面设计工具DirectUI Builder,支持拖拽式界面设计,让界面开发所见即所得   

    ◆ 开放式开发平台,所有控件均为插件方式管理,支持用户自定义控件开发,与DirectUI平台无缝兼容   

    ◆ 支持Windows平台所有的开发工具(VC++、VB6、VS.Net、PowerBuilder、Delphi、C++Builder、E语言)   

    ◆ 支持所有标准控件的换肤   

    ◆ 支持皮肤对象的导出与导入   

    ◆ 支持Windows主题导入,让标准界面皮肤的制作简单快捷   

    ◆ 让客户端代码简洁明了

     

    要想学习DirectUI技术,到网上查了一下,得先学习好Skin++技术,所以,先看一下什么是Skin++吧

    Skin++,系统软件,采用独特的软件界面开发技术,让原本复杂繁琐的界面编程变得轻松自如,随着换肤技术的不断进步,Skin++不仅是功能强大的换肤控件,而且是一款非常通用的换肤插件。只需要在您的程序中添加一句代码,Skin++就能让您的界面焕然一新,并拥有多种主题风格和色调的动态切换功能。

    Skin++ 特性  

    ◆ 换肤彻底,支持Windows系统对话框与控件换肤;   

    ◆ 换肤全面,支持所有的Windows标准控件;   

    ◆ 支持所有Win32/Win64平台,包括.Net应用程序;   

    ◆ 使用简单,只需一行代码实现整体换肤;   

    ◆ 可视设计,提供皮肤设计工具,所见即所得的设计开发环境;   

    ◆ 色调变换,支持皮肤色调变换,每一套皮肤都拥有N种色调风格;   

    ◆ 支持广泛的开发工具, VC/VB/Delphi/C++Builder/VS. Net/PowerBuilder/E;   

    ◆ 支持流行的Windows操作系统;   

    ◆ 皮肤资源海量,提供方便的皮肤转换工具,可以将目前主流的皮肤主题转换成Skin++格式;   

    ◆ 支持Unicode,提供多种编码格式;   

    ◆ 支持静态库链接,与客户程序可以进行无缝整合;   

    ◆ 支持第三方控件;   

    ◆ 界面与业务逻辑彻底分离;

     

    Skin++ 实现原理  

    Skin++属于第二代的外挂式的界面库。   

    Skin++ 提供了SkinBuilder 工具将所有控件的资源全部设计成为一个独立的文件,便于在应用程序外部独立地进行增删改操作。   

    Skin++ 主要采用Hook与子类化技术来实现应用程序的自动换肤。

    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的反初始化与资源文件的清理。

     

    Skin++ 支持的开发工具  

    支持VC++各种版本:VC6,VC2003,VC2005,VC2008;   

    支持VisualStudio. Net各种版本:VisualStudio. Net 2003, VisualStudio. Net 2005, VisualStudio. Net 2008;   

    支持 PowerBuilder 各种版本:PowerBuilder 6.0,7.0,8.0,9.0,10.0,10.5,11.0;   

    支持 Delphi各种版本:Delphi 4,5,6,7,8,2005,2006;   

    支持C++ Builder 各种版本:C++ Builder 4,5,6,2006;   

    支持E语言各种版本。

    转载于:https://www.cnblogs.com/skyme/archive/2010/10/28/1863946.html

    展开全文
  • directUI

    2019-10-08 13:56:40
    DirectUI的出现,对于界面开发,给了我们一个新的选择,目前很多公司使用了该技术对其产品进行了美化,效果还是可以得到肯定的。  接下来,分析一下DirectUI可以完成哪些功能,可以简化哪些操作。以及该项技术的...

      MFC界面开发中,习惯了使用控件,亦或者是自绘制控件来美化界面,但操作起来繁琐,还不太美观。DirectUI的出现,对于界面开发,给了我们一个新的选择,目前很多公司使用了该技术对其产品进行了美化,效果还是可以得到肯定的。

      接下来,分析一下DirectUI可以完成哪些功能,可以简化哪些操作。以及该项技术的关键点技术。

    基于DirectUI技术的界面库的优势

    界面完全换肤

    完全焕肤问题,虽然传统的哦MFC也可以获取窗体句柄等器件对窗体样式大小进行修改定制,但是这操作起来会有很多的类以及对象,首先在内存上也会占用很多,其次操作上也有些混乱。

    而DirectUI这里的“界面完全换肤”,是指用户可完全定制化的换肤,软件界面控件大小,位置等都可能有变化等。DirectUI界面库一般都是用XML定义界面虚拟控 件并直接布局界面,因此可以实现此功能。但实际上完全的换肤涉及到很多问题,目前很少有界面库产品可以实现这种完全换肤。从界面设计的发展来看,目前已经 不流行这种界面的完全换肤,因为这不仅对技术要求比较多,同时也对UI设计要求很高。目前界面换肤大量采用的是更换色调局部的背景更换(如MSN/QQ最新版本)。

    理论上更高的效率
    由于在DirectUI控件中,更多的控件为逻辑上的虚拟控件。因此理论上来讲DirectUI运行效率会更高一些,但这个效率也与DirectUI界面 库整体的软件架构及软件实现有密切关系。在实际考虑时,效率问题应该不是关注的重点,因为目前设计及实现良好的Win32 界面库在效率方面也没有任何问题。只是实现技术上难度高了些。

    容易实现更加炫丽的动态效果

    由于DirectUI的技术特点,使其更容易实现一些特效的动画效果,如菜单的动态徐徐展开和收缩,窗口的动态渐隐渐显的弹出和关闭,控件的动画展开和关闭。当然以上这些特性也取决于开发团队的技术实力,同时也需要顶尖优秀的UI设计师配合,方能带来所期望的炫丽效果。

    防止软件被破解,防外挂

    众多知名互联网公司不遗余力研发DirectUI 界面,这一点也是重要考量。传统的Win32控件由于其消息、原理公开,使得通过一些简单的Hook或其他方式可以很容易破解软件。而一个完全的 DirectUI界面,其界面元素及内部逻辑完全为私有实现,外界无从得知。这就使得破解变得困难的多。充分利用了类的安全性 性能优势。

    界面与逻辑的完全分离(需要完整脚本支持)

    在说明这个问题前,我们来了解这个基本问题:

    什么是界面与逻辑的分离?
    分离的目的是为了简化程序猿的操作复杂度。
    界面
    是指涉及界面元素操作的部分代码,比如控件位置大小,控件的状态;窗口的大小;控件界面的绘制代码;控件的动态创建。
    逻辑是指软件的程序逻辑,与界面操作完全无关,如网络操作,内部事件与消息。
      
            在Win32控件或者MFC等设计里,实际上是将界面和程序逻辑完全糅合在一起,这样做的缺陷在于如果界面UI设计有一些改变,我们可能要大面积的修改程 序代码并重新编译,同时程序也难以重用,我们可能需要重载好多类如CCongfigButton,CSettingButton,CXXXButton 等。每一个新的界面效果的增加,我们都需要去修改程序,添加支持。
            目前来说,基于Win32的大部分界面库已经能最大限度的分离界面与逻辑,最主要的是将界面控件的绘制代码分离出去,使得应用程序变得更加清晰,更加容易维护,容易重用;也能很容易适应界面UI设计的变化。

    什么是界面与逻辑的完全分离?
    完全分离是指程序中不出现任何界面控件元素属性的相关操作,如调整界面控件位置,控制控件的显示/隐藏。即在不重新编译程序的情况下,仅通过修改界面配置文件(XML)和脚本文件,即可加载一个新的界面效果。

           理论上来说,Win32控件库不能做到界面与逻辑的完全分离。比如MFC框架,更是将界面与逻辑完全融合在一起。这也是很多大的互联网公司花重金研发完全 的DirectUI界面引擎的原因,这类公司基本都是快速开发模式,产品更新快,界面UI设计更新快,常常一个软件开发出来,皮肤已经换了好几套了,界面 调整无数次了。如果采用传统的方式,这里面会带来巨大的工作量及重复工作。

    以上几点是一个基于DirectUI技术的界面库可以实现的,但基于Win32控件的界面库难以实现的。但同时我们也会发现,还没有一个通用的 DirectUI界面库产品中实现以上所有特性;即DirectUI的真正优势还未能在实践中实现。以下的关键点是一个完整,通用的DirectUI界面 库难以实现的原因。

      DirectUI界面框架开发的关键点

      1. DirectUI界面库整体架构设计
                一个完整的DirectUI界面库,可以等同于一个Mini的QT、WPF,Flash等。需要一整套的系统级别的架构,而不仅仅只是界面元素的绘制。这个架构非常重要,同时也对软件架构师有非常高的要求。
      2. 完整的事件响应模块
              Win32控件的事件很多,而一般的DirectUI界面库指实现基本的几个事件如单击,mouse in, mouse leave。其他一些事件如双击,右键,滚轮这些,也许不常用,但如果不能提供这些事件,会是一个比较头疼的问题。
      3. 复杂控件的支持
             复杂控件的支持也是众多DirectUI界面库的软肋。复杂的控件如Menu,list control,tree control,Edit等,也许实现起来必须并不复杂,但要实现一个可完全替代Win32标准控件的控件就比较麻烦了。这涉及到三个方面: 
            功能特性的完整性
            很多DirectUI提供商实际上只实现了部分的功能就宣称支持某某控件,这种说法是不负责任的。例如树形控件,其涉及的接口函数有40多个,Notify消息有20多个。这些函数和消息中,可能常用的只有小部分,但其他不常用的也是不能忽略的。 
           效率问题
            拥有这个功能的实现,不一定代表能广泛通用。是否能承受大数据量的插入?是否保证内存的占用问题?这些都是我们在测试一个自绘控件需要考虑的问题。 另外也需要保证在自绘模式下的效率问题。
           
      4. 剪贴,拖拽,热键快捷键等
               Windows标准控件我们用了好久了,但其中很多我们非常常用的功能,会常常被的DirectUI的设计者忽略。也许正因为这些功能太平常,太常用了, 所以容易被人忽略。如剪贴,拖拽,热键,快捷键,tooltips等。这些功能特性也是不能缺少的,因为太常用了!
      5. 界面样式多样性的支持
              目前有些DirectUI类的产品在控件设计时只是模仿MFC等相应控件的API。例如:
        ListView::SetItemImage函数,用来为list的一个item设置图片。但实际上当前软件界面中,设置一张图片是远远不够的,一般 Item中不仅需要根据程序逻辑动态显示多个图片,而且还需要显示一些可以响应事件的图片,如QQ好友列表树。对于DirectUI类产品来说,应该对这 些提供完整支持,而不是仅仅提供一个自绘结构,让用户自己来处理。
      6. 高效灵活的自绘机制
            当前的软件界面控件的样式是多样的,需要有灵活高效的自绘机制来保证。
             Windows标准控件提供了非常灵活的自绘处理,我们可以在WM_PAINT,WM_ERASEGRND等消息中绘制自己的界面。同时对于 Button,Menu,List Control,Tree Control, list Box等控件,微软提供WM_DRAWITEM, CustomDraw 等机制,使得我们可以随心所欲的绘制item内容。而各种情况下的效率则由标准控件内部保证。我们只需要在OnDrawItem等消息中绘制item内容 即可。
             众观所有UI框架,QT,WPF等都提供了完整的自绘机制。如QT甚至提供了CSS等方式来配置界面。足以看出灵活的自绘机制对一个界面产品的重要性。如果DirectUI类界面库不能提供一种高效,灵活的自绘机制,则无法满足软件对界面库的基本需求。
           
      7. 与脚本语言的整合       
               我们坚持认为一个完整的DirectUI界面库应该提供完整的脚本支持。如果将内部的XXLabel, XXButton, XXProgress,  XXSliderCtrl等内部类或结构暴露给界面库的使用者,则势必带来界面和逻辑的重新糅合,同时使得应用程序变得深度依赖界面库,带来很多不稳定因 素。如无法将界面和逻辑很好的分离,DirectUI就变得没有意义。 

               一些知名的互联网公司不但在自己的DirectUI系统中深度整合脚本语言,在脚本语言的选择上也在变化,之前常用的是vbscrip/jsscript语言,目前多使用lua脚本语言,lua脚本为开源项目,其特点是灵活,高效,容易扩展。

    与DirectUI界面库相比,DSkinLite界面库的优势

      1. 对开发人员界面开发能力要求低
        如上面所描述的,由于目前还未有一个完整的DirectUI类型界面库,大多数情况我们需要在DirectUI界面库的源码上做开发, 这对参与二次开发的人员有很高要求,需要对界面开发的各方面有所积累。而DSkinLite界面库主要基于Win32控件,封装完整,无需开发人员熟悉界 面开发,同时我们设计时非常重视界面库的易用性,对MFC,WTL,Win32控件有些基本了解的开发人员即可胜任。
      2. 可迅速实施到项目中
        如果已有VC项目,使用DSkinLite这类Win32控件库,可以很容易整合到现有项目中,基本无需修改已有程序逻辑。对于新的项目由于省去了整合并扩展DirectUI框架的工作,使用DSkinLite也会比较快。
      3. 项目风险小,投入少
        由于一个完整的DirectUI库相当于一个新的GUI Framework框架,这样DirectUI界面库本身在架构设计,程序代码质量等方面会给项目带来新的风险。同时需要对项目增加相应的界面开发人员, 用以维护DirectUI界面库产品。而基于Win32控件的DSkinLite界面库没有方面的问题。

     摘录修改自:http://blog.csdn.net/a199228/article/details/7027717。谢谢原作者。

    转载于:https://www.cnblogs.com/L-Arikes/p/4252068.html

    展开全文
  • Direct UI

    2015-03-10 16:17:00
    在界面开发中,眼下DirectUI是个热门的技术名称,由于...由于传统的Win32/ MFC大家都比較了解,所以首先我们分析DirectUI,看看DirectUI能完毕哪些普通Win32控件难以实现的功能,同一时候实现一个完整的DirectUI...

    在界面开发中,眼下DirectUI是个热门的技术名称,由于众多的知名公司都是用DirectUI方式作出了非常炫丽的界面。而对于大多数熟悉Win32控件,熟悉MFC开发的开发者来说,我们应该做何选择?

    image

    由于传统的Win32/ MFC大家都比較了解,所以首先我们分析DirectUI,看看DirectUI能完毕哪些普通Win32控件难以实现的功能,同一时候实现一个完整的DirectUI有那些关键点。

    image 基于DirectUI技术的界面库的优势

                 下面是我们总结的一个完好的DirectUI库的优势,这些特性Win32控件方式难以实现的:

    1. 界面全然换肤
      这里的“界面全然换肤”,是指用户可全然定制化的换肤,软件界面控件大小,位置等都可能有变化等。DirectUI界面库一般都是用XML定义界面虚拟控件并直接布局界面,因此能够实现此功能。但实际上全然的换肤涉及到非常多问题,眼下非常少有界面库产品能够实现这样的全然换肤。从界面设计的发展来看,眼下已经不流行这样的界面的全然换肤,由于这不仅对技术要求比較多,同一时候也对UI设计要求非常高。眼下界面换肤大量採用的是更换色调局部的背景更换(如MSN/QQ最新版本号)。
    2. 理论上更高的效率
      由于在DirectUI控件中,很多其它的控件为逻辑上的虚拟控件。因此理论上来讲DirectUI执行效率会更高一些,但这个效率也与DirectUI界面库总体的软件架构及软件实现有密切关系。在实际考虑时,效率问题应该不是关注的重点,由于眼下设计及实现良好的Win32 界面库在效率方面也没有不论什么问题。
    3. easy实现更加炫丽的动态效果
      因为DirectUI的技术特点,使其更easy实现一些特效的动画效果,如菜单的动态徐徐展开和收缩,窗体的动态渐隐渐显的弹出和关闭,控件的动画展开和关闭。当然以上这些特性也取决于开发团队的技术实力,同一时候也须要顶尖优秀的UI设计师配合,方能带来所期望的炫丽效果。
    4. 防止软件被破解,防外挂
      关于这一点,可能是众多关注DirectUI的人没有考虑到的。但实际上恰恰是这一点可能是最为关键的。众多知名互联网公司不遗余力研发DirectUI界面,这一点也是重要考量。传统的Win32控件因为其消息、原理公开,使得通过一些简单的Hook或其它方式能够非常easy破解软件。而一个全然的DirectUI界面,其界面元素及内部逻辑全然为私有实现,外界无从得知。这就使得破解变得困难的多。
    5. 界面与逻辑的全然分离(须要完整脚本支持)

      在说明这个问题前,我们来了解这个基本问题:

      什么是界面与逻辑的分离?

      界面
      是指涉及界面元素操作的部分代码,比方控件位置大小,控件的状态;窗体的大小;控件界面的绘制代码;控件的动态创建。
      逻辑是指软件的程序逻辑,与界面操作全然无关,如网络操作,内部事件与消息。
        
              在Win32控件或者MFC等设计里,实际上是将界面和程序逻辑全然糅合在一起,这样做的缺陷在于假设界面UI设计有一些改变,我们可能要大面积的改动程序代码并又一次编译,同一时候程序也难以重用,我们可能须要重载好多类如CCongfigButton,CSettingButton,CXXXButton等。每个新的界面效果的添加,我们都须要去改动程序,加入支持。
              眼下来说,基于Win32的大部分界面库已经能最大限度的分离界面与逻辑,最基本的是将界面控件的绘制代码分离出去,使得应用程序变得更加清晰,更加easy维护,easy重用;也能非常easy适应界面UI设计的变化。

      什么是界面与逻辑的全然分离?
      全然分离是指程序中不出现不论什么界面控件元素属性的相关操作,如调整界面控件位置,控制控件的显示/隐藏。即在不又一次编译程序的情况下,仅通过改动界面配置文件(XML)和脚本文件,就可以载入一个新的界面效果。

             理论上来说,Win32控件库不能做到界面与逻辑的全然分离。比方MFC框架,更是将界面与逻辑全然融合在一起。这也是非常多大的互联网公司花重金研发全然的DirectUI界面引擎的原因,这类公司基本都是高速开发模式,产品更新快,界面UI设计更新快,经常一个软件开发出来,皮肤已经换了好几套了,界面调整无数次了。假设採用传统的方式,这里面会带来巨大的工作量及反复工作。

    以上几点是一个基于DirectUI技术的界面库能够实现的,但基于Win32控件的界面库难以实现的。但同一时候我们也会发现,还没有一个通用的DirectUI界面库产品中实现以上全部特性;即DirectUI的真正优势还未能在实践中实现。下面的关键点是一个完整,通用的DirectUI界面库难以实现的原因。

    image  DirectUI界面框架开发的关键点(或者称为难点)

    1. DirectUI界面库总体架构设计
              一个完整的DirectUI界面库,能够等同于一个Mini的QT、WPF,Flash等。须要一整套的系统级别的架构,而不只不过界面元素的绘制。这个架构很重要,同一时候也对软件架构师有很高的要求。
    2. 完整的事件响应模块
            Win32控件的事件非常多,而一般的DirectUI界面库指实现主要的几个事件如单击,mouse in, mouse leave。其它一些事件如双击,右键,滚轮这些,或许不经常使用,但假设不能提供这些事件,会是一个比較头疼的问题。
    3. 复杂控件的支持
           复杂控件的支持也是众多DirectUI界面库的软肋。复杂的控件如Menu,list control,tree control,Edit等,或许实现起来必须并不复杂,但要实现一个可全然替代Win32标准控件的控件就比較麻烦了。这涉及到三个方面: 
          功能特性的完整性
          非常多DirectUI提供商实际上仅仅实现了部分的功能就宣称支持某某控件,这样的说法是不负责任的。比如树形控件,其涉及的接口函数有40多个,Notify消息有20多个。这些函数和消息中,可能经常使用的仅仅有小部分,但其它不经常使用的也是不能忽略的。 
         效率问题
          拥有这个功能的实现,不一定代表能广泛通用。能否承受大数据量的插入?是否保证内存的占用问题?这些都是我们在測试一个自绘控件须要考虑的问题。 另外也须要保证在自绘模式下的效率问题。
         
    4. 剪贴,拖拽,热键快捷键等
             Windows标准控件我们用了好久了,但当中非常多我们非经常常使用的功能,会经常被的DirectUI的设计者忽略。或许正由于这些功能太寻常,太经常使用了,所以easy被人忽略。如剪贴,拖拽,热键,快捷键,tooltips等。这些功能特性也是不能缺少的,由于太经常使用了!
    5. 界面样式多样性的支持
            眼下有些DirectUI类的产品在控件设计时仅仅是模仿MFC等对应控件的API。比如:
      ListView::SetItemImage函数,用来为list的一个item设置图片。但实际上当前软件界面中,设置一张图片是远远不够的,一般Item中不仅须要依据程序逻辑动态显示多个图片,并且还须要显示一些能够响应事件的图片,如QQ好友列表树。对于DirectUI类产品来说,应该对这些提供完整支持,而不是只提供一个自绘结构,让用户自己来处理。
    6. 高效灵活的自绘机制
          当前的软件界面控件的样式是多样的,须要有灵活高效的自绘机制来保证。
           Windows标准控件提供了很灵活的自绘处理,我们能够在WM_PAINT,WM_ERASEGRND等消息中绘制自己的界面。同一时候对于Button,Menu,List Control,Tree Control, list Box等控件,微软提供WM_DRAWITEM, CustomDraw 等机制,使得我们能够随心所欲的绘制item内容。而各种情况下的效率则由标准控件内部保证。我们仅仅须要在OnDrawItem等消息中绘制item内容就可以。
           众观全部UI框架,QT,WPF等都提供了完整的自绘机制。如QT甚至提供了CSS等方式来配置界面。足以看出灵活的自绘机制对一个界面产品的重要性。假设DirectUI类界面库不能提供一种高效,灵活的自绘机制,则无法满足软件对界面库的基本需求。
         
    7. 与脚本语言的整合       
             我们坚持觉得一个完整的DirectUI界面库应该提供完整的脚本支持。假设将内部的XXLabel, XXButton, XXProgress,  XXSliderCtrl等内部类或结构暴露给界面库的使用者,则势必带来界面和逻辑的又一次糅合,同一时候使得应用程序变得深度依赖界面库,带来非常多不稳定因素。如无法将界面和逻辑非常好的分离,DirectUI就变得没有意义。 

             一些知名的互联网公司不但在自己的DirectUI系统中深度整合脚本语言,在脚本语言的选择上也在变化,之前经常使用的是vbscrip/jsscript语言,眼下多使用lua脚本语言,lua脚本为开源项目,其特点是灵活,高效,easy扩展。

    image  与DirectUI界面库相比,DSkinLite界面库的优势

    1. 对开发者界面开发能力要求低
      如上面所描写叙述的,因为眼下还未有一个完整的DirectUI类型界面库,大多数情况我们须要在DirectUI界面库的源代码上做开发,这对參与二次开发的人员有非常高要求,须要对界面开发的各方面有所积累。而DSkinLite界面库主要基于Win32控件,封装完整,无需开发者熟悉界面开发,同一时候我们设计时非常重视界面库的易用性,对MFC,WTL,Win32控件有些基本了解的开发者就可以胜任。
    2. 可迅速实施到项目中
      假设已有VC项目,使用DSkinLite这类Win32控件库,能够非常easy整合到现有项目中,基本无需改动已有程序逻辑。对于新的项目因为省去了整合并扩展DirectUI框架的工作,使用DSkinLite也会比較快。
    3. 项目风险小,投入少
      因为一个完整的DirectUI库相当于一个新的GUI Framework框架,这样DirectUI界面库本身在架构设计,程序代码质量等方面会给项目带来新的风险。同一时候须要对项目添加对应的界面开发者,用以维护DirectUI界面库产品。而基于Win32控件的DSkinLite界面库没有方面的问题。
    展开全文
  • direct ui

    2016-03-03 16:02:00
    direct ui 句柄 转载于:https://www.cnblogs.com/zhuqn/p/5238977.html

    direct ui

    句柄

    转载于:https://www.cnblogs.com/zhuqn/p/5238977.html

    展开全文
  • DirectUI

    千次阅读 2011-03-07 17:16:00
    最近由于项目的需要学习了一下DirectUI方面的东西,主要借鉴的是一个国外程序员写的代码(见引用一),看了后发现它更多的是探讨一种实现的可能性和思路,和实际应用还是有距离的,不过其实现还是很有意思的。在写此小结的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,870
精华内容 1,148
热门标签
关键字:

directui