程序员

关于DirectUI的一些思考

2018-08-01  本文已影响0人  AlgoPeek

1. DirectUI的发展历史

对于传统Win32界面编程来讲,微软提供一整套界面标准,比如窗口、按钮、滚动条、列表等。对于每一个窗口(控件也是一个窗口),其能响应的消息和行为都有规范(通过API提供给开发者)。微软这套界面标准是为通用场景下提出的解决方案,能够满足绝大部分需求,但业务场景的多样性,使得开发者们并不满足于这套界面标准。

2. 什么是DirectUI

DirectUI是一种界面开发思想。其核心思想是指将所有的界面控件都绘制在一个窗口上,这些控件的逻辑和绘制方式都必须自己进行编写和封装,而不是使用Windows的原生控件,所以这些控件都是无句柄的(Windowsless)

那这个名称是怎么来的呢?由于Windows有句柄窗口是一套工业标准,窗口消息和API都是公开的,所有人都知道怎么操作窗口。微软在做MSN的时候为了保护用户隐私,搞了一个DirectUIHWND,后边DirectUI这个名字就被沿用下来,后边说的DirectUI一般都是指无句柄窗口

3. DirectUI需要解决的问题

DirectUI实际是在Windows的原生窗口基础上,更细粒度地进行窗口控制,它需要建立一套自己DirectUI标准,主要需要解决以下问题:

4. DirectUI的优势

相较于传统Win32界面,DirectUI技术有以下优势:

5. DirectUI框架

对于互联网桌面端产品,目前大部分还是使用的DirectUI,对于大公司而言,都有一套自己的界面框架,如腾讯、360。但这些公司并没有把这些界面框架开源出来。不过迅雷开源自己的界面引擎bolt
另外也有一些个人开发者维护的比较优秀的开源界面库,在众多开源库中,比较活跃的还是SOUI,具体请参考SOUI界面库作者的博客

6. 从另一个角度看DirectUI

UI承载着跟用户交互的职能。从早期二进制打孔到命令行到现在的窗口可视化,其本质是降低使用计算机的门槛,提高使用计算机的效率。而从UI发展来看,DirectUI只是在有句柄的窗口上进行更细粒度的控制;再往上抽象来看,Windows系统制定窗口标准,实际上是对显存更细粒度的控制;不管是有句柄窗口还是无句柄窗口,其目的无非是提高计算机跟用户的交互能力和开发效率。从这一点来看,DirectUI在交互能力和开发效率上都有所提高,但其本质没有任何变化。从开发效率来看,它肯定比不上WPF;从交互能力来讲,传统的UI交互有被语音交互取代的趋势。

7. 更多参考

上一篇下一篇

猜你喜欢

热点阅读