您的位置:首页 > 产品设计 > UI/UE

DirectUI浅谈

2016-05-15 10:24 232 查看
DirectUI是一个软件设计思想,这个思想来源于Windowless理念,这个思想可以表述为“只有主窗口有句柄,其他的窗口都是以控件的形式被绘制出来”,所有采用这个思想设计的开发框架都可以称为DirectUI。目前流行的DirectUI库开源的有duilib,REDUI,Bkuilib,UIFeature,以及国内有名的几家做UI库的公司的产品,例如上海勇进,炫彩界面库,另外腾讯,迅雷这些公司都有自己的DirectUI库,只是他们不公开,只是自己的产品用。

因为有句柄的窗口消息和原理的公开所以使得它很容易被破解,降低了窗口信息的不安全性,所以就有人想给窗口加上锁来保证窗口信息的安全。最早加锁的人还是微软自己,MSN要保护用户隐私,搞了个DirectUIHWND,被人发现后,DirectUI这个名称就逐渐扩散开来,也有越来越多的软件给自己的窗口加了锁。

用DirectUI框架开发的程序本质上是一个Win32程序。与MFC相比较,区别是除了主窗口之外的各种窗口和控件是由微软来实现还是UI库自己实现。各种不同的UI库是通过WindowsAPI的封装来实现自己需要的控件,同时设计出自己消息响应机制。

DirectUI的两大特点,其一是Windowless理念带来的安全性,另外一个就是界面和逻辑分离为开发带来的高效性。DirectUI使用XML文件来描述界面显示,通过编程语言来描述界面逻辑。这使得开发效率得到了提高,同时对于为后期的维护降低了工作量。

对于不同的UI库,单纯讨论每个库的优劣是没有意义的,而是要放到具体的应用场景里来看,每个库都有自己擅长的场景。目前大多数C++的DirectUI停留在XML配置静态UI,然后C++来实现后台逻辑。

DirectUI还有以下优点,基于Win32API,没有framework依赖。易于改变皮肤色调。支持大多数控件透明,包括子窗口透明。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: