开发C++的界面,如果用MFC显得过于传统和呆板,如果是企业应用无所谓,要求没那么高,如果是互联网应用,就显得太单调了,不能容易的写出漂亮的界面,吸引眼球,像QQ,360这种客户端界面怎么开发出来的呢。用下面的介绍的几款国内开源的界面库,就会很容易。
DirectUI界面库 取名自微软的一个窗口类名“DirectUIHWND”,意为Paint on parent dc directly。 即子窗口不以窗口句柄的形式创建,只是逻辑上的窗口,绘制在父窗口之上。微软的“DirectUI”技术广泛的应用于Window XP系统,MediaPlayer播放器,即时通讯工具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 界面库旨在满足客户端界面快速开发的需要,同时融入业界前沿的皮肤技术,为用户创建更加高效,专业的界面。
一、DuiLib界面库
下载地址:http://code.google.com/p/duilib/
论坛地址:http://www.bbsduilib.com/forum.php
入门教程:http://www.cnblogs.com/Alberl/tag/duilib%E5%85%A5%E9%97%A8%E6%95%99%E7%A8%8B/
简介:
国内首个开源 的directui 界面库,开放,共享,惠众,共赢,遵循bsd协议,可以免费用于商业项目,目前支持Windows 32 、Window CE、Mobile等平台。
Duilib 是一款强大的界面开发工具,可以将用户界面和处理逻辑彻底分离,极大地提高用户界面的开发效率。提供所见即所得的开发工具UIDesigner。使用DirectUI后将使得我们的设计人员彻底解 放,不会受到开发的束缚,可以充分地发挥其设计能力来设计软件界面,并参与到用户界面开发过程中。 Duilib 目前支持Windows 32 、Window CE、Mobile等平台,使用C++开发,遵循BSD协议,可以免费用于商业项目 。
DirectUI界面库 取名自微软的一个窗口类名“DirectUIHWND”,意为Paint on parent dc directly。 即子窗口不以窗口句柄的形式创建,只是逻辑上的窗口,绘制在父窗口之上。
DirectUI界面库使用XML来描述界面风格,界面布局,可 以很方便的构建高效,绚丽的,非常易于扩展的界面。从而很好的将界面和逻辑分离,同时易于实现各种超炫的界面效果如换色,换肤,透明等。
[1]
Duilib界面库是一款由杭州月牙儿 网络技术有限公司开发的界面开发库,她可以将用户界面和处理逻辑彻底分离,极大地提高用户界面的开发效率。
Duilib界面库的出现解决了使用传统MFC界面库开发软件不美观、界面细节处理不好、使用硬编码、开发效率低下、生成程序体积大等问题。而且传统MFC界面美化库大都使用HOOK等对系统影响比较大的技术,可能会导致系统不稳定或者引发其他错误。而Duilib界面库完全基于GDI在窗口上自绘,无其他依赖,未使用特殊或危险的 系统调用,能够很好的解决传统MFC界面的一系列问题。
Duilib界面库完全兼容ActiveX控件(如常见的IE控件和Flash),也可以和MFC等界面库配合使用,用户完全可以不用担心切换到Duilib界面库上面会带来额外的成本或者Duilib界面库会出现功能不够用等情况。
Duilib界面库可广泛用于互联网客户端、工具软件客户端、管理系统客户端、多媒体客户端(如KTV、触摸屏)、车载电脑系统、gps系统和手机客户端软件等。
Duilib界面库可以广泛运行在windows98、Windows2000、WindowsXP、Windows2003、Windows Vista、Windows7、Windows8、WindowsCE5、WindowsCE6、Windows Mobile6等平台上,目前支持的开发工具包括vc6、vc2003、vc2005、vc2008、vc2010。
Duilib界面库基于viksoe的DirectUI项目
[2] ,并且以BSD协议开源。
特点:
XML和脚本构造界面: 使用xml配置界面控件布局 使用xml描述界面风格 XML语法简单,易于学习 和掌握 支持改变皮肤色调 支持大多数控件透明,包括子窗口透明 支持png, bitmap, gif, ico图片格式。支持带透明通道的png 图片
这里是使用Duilib做的一个 demo
[1]
1、界面与业务逻辑分离
2、 使用XML配置界面
3、 界面布局方式灵活多样
4、 内置常用的控件
5、 支持 自定义控件
6、强大的控件组合能力,复杂功能可通过简单控件组合完成
7、强大的事件处理机制
8、基于GDI和脏矩形的高效绘制技术
9、支持多种资源方式,支持多种 图片格式
10、支持alpha混合,支持窗口透明
11、强大的图片绘制描述方式
12、类html字符串绘制技术
13、支持动态变换色调
14、支持动态切换资源位置方式换肤
15、支持ansi和unicode,支持多国家语言
16、支持 插件系统
17、内存占用小
18、无第三方库依赖
19、提供可见即所得的ui编辑器
20、丰富易上手的demo例子
21、可以非常容易和mfc、wtl结合使用
二、炫彩界面库
官网地址:http://www.xcgui.com
官网做得还不错,2012年12月刚刚开源,文档比较全,版本迭代也快,有企业在支持,比起duilib,更专业一点。
|
版本更新记录
|
-
[2013-01-18] 炫彩界面库v1.5.2
-
[2012-12-25] 炫彩界面库v1.5
-
[2012-12-08] 炫彩界面库v1.4.9
-
[2012-10-25] 炫彩界面库v1.4.8
-
[2012-09-17] 炫彩界面库v1.4.7
-
[2012-07-22] 炫彩界面库v1.4.6
-
[2012-07-01] 炫彩界面库v1.4.5
-
[2012-06-04] 炫彩界面库v1.4.4
-
[2012-04-09] 炫彩界面库v1.4.3
-
[2012-03-22] 炫彩界面库v1.4.2
-
[2012-03-02] 炫彩界面库v1.4.1
-
更多...
|
|
炫彩界面库不仅是界面库,它是软件界面开发框架,让用户开发桌面软件变的简单高效,它功能丰富, 小巧(库文件大小仅五百多KB),安全(所有界面元素无句柄),Unicode字符编码,完善的帮助文档;
并且提供了UI设计器,支持XML布局,CSS样式表,XML资源;该库采用C语言开发,速度更快,支持多种开发语言调用,例如C#,易语言; 不需要第三方库的支持,不需要MFC,ATL,和WINDOWS标准控件;
采用DirectUI设计思想,在窗口内无子窗口,窗口相当于容器,界面元素都是逻辑上的区域,没有句柄. 灵活易扩展,即支持C语言风格开发,同时也支持C++语言开发,用户可以对元素句柄进行包装扩展,支持用户自绘,支持各种格式图片
|
|
|
|
小巧高效
采用C语言开发,速度更快,库文件大小仅五百多KB,不需要第三方库的支持,不需要MFC,ATL,和WINDOWS标准控件.
|
|
安全
采用DirectUI设计思想,所有界面元素无句柄,防止他人嗅探,获取重要数据.
|
|
UI设计器
提供了UI设计器,支持XML布局,CSS样式表,XML资源,动态换肤,布局调整.
|
|
DirectUI
采用DirectUI设计思想,在窗口内无子窗口,窗口相当于容器,界面元素都是逻辑上的区域,没有句柄.
|
|
窗口特效
支持各种格式图片(bmp,gif,jpg,png,ico),支持自适应贴图,元素透明,窗口透明,窗口阴影边框,异型窗口,窗口绘制完成后特效合成.
|
|
支持多种开发语言
支持C,C++,C#,易语言,C++ Builder等,所有能够调用DLL的开发语言.
|
|
帮助文档
完善的帮助文档,同步升级,帮你解决开发问题.
|
|