2019年2月28日星期四

DirectUI产品调研

目前正在研究DirectUI技术,分享一点心得给大家。
关于DirectUI技术的介绍我在这里就不说了,可以上Google查一下,非常丰富。
目前使用DirectUI技术开发的软件产品原来原丰富,比如QQ, 迅雷,人人,飞信等
使用DirectUI制作界面可以达到的效果是原始的界面开发技术所不能匹敌的。
简单的来说DirectUI就是将所有的控件都绘制在一个窗口上,这些控件的逻辑和绘图方式都必须的自己进行编写和封装,所以这些控件都是无句柄的。
DirectUI技术的实现步骤和难点:
1、窗口的子类化,截获窗口的消息。
2、封装自己的控件,并将自己的控件绘制到该窗口上
3、封装窗口的消息,并分发到自己的控件上,让自己的控件根据消息进行相应和绘制
4、根据不同的行为发送自定义消息给窗口,以便程序进行调用。
5、一般窗口上控件的组织使用XML来描述

目前国内做DirectUI的公司好像有五家

迅雷的界面库 迅雷7
网址http://xldoc.xl7.xunlei.com/0000000018/0000000018.html
我大概试用了一下,总结来说,这是通过LUA来实现控件的,
优点:迅雷产品,亿万用户锤炼,产品值得信赖
          动画特效不错,动画种类也比较多,效率不错
          支持LUA语言
          免费
缺点:只支持C++、LUA,需要编写大量代码,没有拿来就用的控件,开发成本和学习成本很高。
          非商用,出现bug无法及时跟进和修复。
          无可视化的编辑器可用
          库较庞大,各种图片库和LUA、核心库,得有5,6个DLL,加一起压缩得2M左右
          不开源

JuupuSoft界面库
他们的DirectUI产品网站
也试用了一下,总的来说是这几款产品里表现最好的,也是最完美的。
优点:网站介绍说是腾讯原UI界面团队开发的,试用后技术也真没得说
          相当牛X的设计器,也是我见过最完美的设计器,所有控件都能通过拖放和配置,迅速的做出真实的界面产品。
          支持多语言,示例里有C#和c++、VB等版本,效率均很赞
          支持脚本,JavaScript、LUA、Python
          我试着用它写过几个界面,学习成本很低,不需要很多基础知道,可以很快上手,另外,代码量很小,功能很全面
          支持动画库,像淡入淡出,移动动画、滑屏均支持,并且支持无窗口的richedit和插入动画的功能
          组件很小,只有700K大小,绘制效率和内存消耗方面真的很赞,是款好产品
缺点:收费
          个人版功能太少
          不开源

UIPower界面库,上海勇进
也试用了一下,总的来说是不是很好
优点:老牌厂家,做界面产品好几年了,是国内比较早的界面厂商
          支持设计器,但基本是一款贴图设计器,体验很差没有了图片,基本没有用
          支持脚本,JavaScript、LUA。
          传说支持多语言,但DEMO中,并没有看到
       
缺点:收费,贵的离谱
          无个人版
          不开源     
          内存和资源占用很高,绘制效率也需要再提升一下,
          动画方面也较初级,没有看到较多的动画演示

还有一个个人的
网址www.uieasy.com
也有不少技术资料
觉得还行,个人做到这个程度也不易了


目前使用DirectUI技术开发的软件产品原来原丰富,比如QQ2009, MSN
使用DirectUI制作界面可以达到的效果是原始的界面开发技术所不能匹敌的。

简单的来说DirectUI就是将所有的控件都绘制在一个窗口上,这些控件的逻辑和绘图方式都必须的自己进行编写和封装,所以这些控件都是无句柄的。

DirectUI技术的实现步骤和难点:
1、窗口的子类化,截获窗口的消息。
2、封装自己的控件,并将自己的控件绘制到该窗口上
3、封装窗口的消息,并分发到自己的控件上,让自己的控件根据消息进行相应和绘制
4、根据不同的行为发送自定义消息给窗口,以便程序进行调用。
5、一般窗口上控件的组织使用XML来描述


目前国内做DirectUI的公司好像有两家(像QQ那样自己弄DirectUI给自己用的公司就不说了,不会外泄出去的)
一家上海 UIPower
网址www.uipower.com
上面有很多的DirectUI相关技术介绍和视频教程
他们的DirectUI产品网站
网址www.directui.com
上面有控件下载和一个演示Demo,目前好像没有提供试用版,不过可以借鉴不少东西

还有一个个人的
网址www.uieasy.com
也有不少技术资料

没有评论:

发表评论