腾讯界面库初探

腾讯界面库初探

    腾讯新产品线:QQ2009, QQ 旋风2,QQ影音等都使用了非常漂亮的界面。一直以为是自己写的,毕竟QQ2009需要一个安全的环境以避免外挂的衍生。经过spy++探测,发现一个TXGuiFoundation,再在网上一搜,搜到了这个东西:

    DSkinLite: http://uieasy.cn/downloads.html

腾讯界面库初探_第1张图片

     Dskinlite 是一款轻量级的C++皮肤库,使用XML文件根据规则来管理GDI资源如颜色,字体,图片,并描述界面构成,最大程度的将界面和程序逻辑分离,同时为软件皮肤更换,换色等提供基础支持。DSkinLite将界面构成元素抽象为线条元素,矩形元素,图片元素,文本元素,并提供相应规则来使用这些元素"组合"界面。DSkinlite开发团队有较深的Windows界面开发的实际经历,对软件界面处理颇有心得,致力于将实用,高效,前沿的界面处理技术介绍给广大开发人员。

        DSkinLite与其他界面库相比有以下特点: 没有采用Hook所有进程消息的方式,因此没有替换系统相关对话框。DSkinLite只是采用MFCATLframework类似的方式,简单替换窗口过程,截取界面绘制等消息,对应用程序来说基本上是透明的。从这个方面讲,DSkinLite是一款轻量级的界面库。 同时,DSkinLite没有特别的Frameword的依赖,可以在Win32MFC,ATL,WTL等环境中使用。 DSkinLite界面库使用XML管理GDI资源并配置窗口界面,用户可以方便的保持界面的一致性,同时可以很方便的构造出更多的窗口样式 界面库的高效性。DSkinLite将专注于程序库的高效性,具体表现在内存占用,界面绘制速度,界面防止闪烁,程序加载图片资源、解析XML文件的速度等方面,我们做了很多工作,并不断持续优化。以期望程序各方面表现最为高效的界面程序库。 
        DSkinLite
皮肤库的程序架构考虑到可能出现的界面特效,使得实现诸如透明,渐隐渐显,动画等界面特效变得更加容易,目前支持大多数控件的透明效果,后续会根据用户需求,开发更多的实用的界面特效。

使用XML配置控件的界面

  • 使用XML定义GDI资源(颜色,字体,图片,cursor
  • 使用XML配置控件的界面风格
  • 绘制元素被抽象为线条,文本,矩形,图片
  •  

    XML语法简单,易于学习和掌握

     

    其他关键特性

     

  • 基于Win32 API,没有framework依赖。
  • 支持大多数标准控件
  • 支持改变皮肤色调
  • 支持大多数控件透明,包括子窗口透明
  • 支持动画效果
  • 支持png, bitmap, gif, ico图片格式。支持带透明通道的png图片
  • 支持将皮肤文件打包到一个文件
  • 支持Unicode
  • 支持Popup Menu等,包括不规则的menu window
  •  

    支持滚动条控件,同时支持所有内置滚动条控制

       

    该网站还提到一个DirectUI的东西,这个东西是一种windowless的架构,具体概念类似于游戏中的UI,不依赖平台句柄,因此外挂只能截取诸如QQ基于ATL的外窗口,但是无法获取窗口内部的数据

 

你可能感兴趣的:(腾讯界面库初探)