S.l.e!ep.¢%

像打了激速一样,以四倍的速度运转,开心的工作
简单、开放、平等的公司文化;尊重个性、自由与个人价值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

QQ2009 界面技术(DirectUI)

Posted on 2009-10-09 14:01 S.l.e!ep.¢% 阅读(2366) 评论(3)  编辑 收藏 引用 所属分类: IM

DirectUI界面库 取名自微软的一个窗口类名“DirectUIHWND”,意为Paint on parent dc directly。即子窗口不以窗口句柄的形式创建,只是逻辑上的窗口,绘制在父窗口之上。微软的“DirectUI”技术广泛的应用于Window XP系统,Media Player播放器,即时通讯工具MSN Messager。

传统的window界面,是用户窗口的层次排列,这种方式有很多局限性。目前的开发环境我们可以很快的使用win32控件构造出标准的干净的界面,但是我们同时也会立刻意识到如果我想像界面更加漂亮,更加炫一点就比较麻烦了。Windows控件提供的Custom-Draw/Ower-Draw技术局限太多,基本上没有透明等效果支持,同时控件布局方面也比较古板。

DirectUI界面库使用XML来描述界面风格,界面布局,使用脚本语言(如vbscript,javascript,lua)等来作为界面元素和程序逻辑的交互。从这方面来看,DirectUI界面库可以看成是一个迷你的微软WPF,mozilla XUL,或者Adobe的Flex,这些平台代表的应用程序的发展方向,同时也有很多相似的架构,比如多采用类似XML的方式描述定义界面,使用脚本语言(xul使用javascript,flex使用Action Script)来作为控制界面元素并和程序逻辑之间交互。DirectUI 界面库采用相似的设计,使用xml描述界面,同时使用javascript,或者vbscript来作为界面和逻辑的粘合。在控件设计方面,DirectUI界面库更多的融入了XUL,WPF,Flex等控件设计理念,并没有一味的照搬window标准控件,以期望其成为一款真正使用实用的界面库。

这种界面库设计的最大的好处在于可以很方便的构建高效,绚丽的,非常易于扩展的界面。国外如微软,国内如腾讯,百度等公司的客户端产品多采用这种方式来组织界面,从而很好的将界面和逻辑分离,同时易于实现各种超炫的界面效果如换色,换肤,透明等。 DirectUI 界面库旨在满足客户端界面快速开发的需要,同时融入业界前沿的皮肤技术,为用户创建更加高效,专业的界面。
其他特性:
* 使用xml配置界面控件布局
* 使用脚本(vbscript, jscript)控制控件属性,响应事件
* 使用xml描述界面风格
* XML语法简单,易于学习和掌握
* 基于Win32 API,没有framework依赖。
* 支持改变皮肤色调
* 支持大多数控件透明,包括子窗口透明
* 支持png, bitmap, gif, ico图片格式。支持带透明通道的png图片

DirectUI在微软内部使用的很广泛了,为什么不公布出来呢?估计有三点原因:

1. 最初写这套框架的人太牛了,根本没写什么注释文档,又经过一堆牛人一通乱改,估计能看懂和用好的人不多。发布出来,大家一看原来微软的代码也可以这么乱,对Vista的信心更是大跌。

2. DirectUI只是一个UI框架,没有什么数据库,网络,WebSerivice支持,更别说同MFC,ATL集合,甚至可能冲突,为了顾全MFC的地位,WTL都可以牺牲,DirectUI更别说了。

3.DirectUI是C++开发的,这是什么时代了还用C++开发,有了多快好省的DirectUI,谁还用.NET开发客户端程序,同微软的发展战略不一致呀。

 

from url:http://blog.csdn.net/kissqi/archive/2009/06/30/4306628.aspx

Feedback

# re: QQ2009 界面技术(DirectUI) [未登录]  回复  更多评论   

2009-10-09 22:27 by vincent
说真的..这三个原因我觉得很orz

# re: QQ2009 界面技术(DirectUI)   回复  更多评论   

2009-12-28 09:38 by HOHO
同微软的发展战略不一致呀

为了想赚钱,微软多给你弄出点所谓的新玩意。牵着你走。。

# re: QQ2009 界面技术(DirectUI)   回复  更多评论   

2013-08-28 14:56 by xiaozhi_5638
DirectUI只是微软为了照顾xp等默认不带.net环境的系统 否则 windows客户端想要出色的UI和用户交互 完全可以使用wpf 至于运行效率这个劣势 随着硬件配置高速发展 在客户端使用过程中表现的越来越不明显了 xp一淘汰 directUI就没什么大用处了

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理