firemail

标题: 关于DirectUI的一些思考 [打印本页]

作者: Qter    时间: 2022-9-15 19:16
标题: 关于DirectUI的一些思考
1. DirectUI的发展历史对于传统Win32界面编程来讲,微软提供一整套界面标准,比如窗口、按钮、滚动条、列表等。对于每一个窗口(控件也是一个窗口),其能响应的消息和行为都有规范(通过API提供给开发者)。微软这套界面标准是为通用场景下提出的解决方案,能够满足绝大部分需求,但业务场景的多样性,使得开发者们并不满足于这套界面标准。
2. 什么是DirectUIDirectUI是一种界面开发思想。其核心思想是指将所有的界面控件都绘制在一个窗口上,这些控件的逻辑和绘制方式都必须自己进行编写和封装,而不是使用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. 从另一个角度看DirectUIUI承载着跟用户交互的职能。从早期二进制打孔到命令行到现在的窗口可视化,其本质是降低使用计算机的门槛,提高使用计算机的效率。而从UI发展来看,DirectUI只是在有句柄的窗口上进行更细粒度的控制;再往上抽象来看,Windows系统制定窗口标准,实际上是对显存更细粒度的控制;不管是有句柄窗口还是无句柄窗口,其目的无非是提高计算机跟用户的交互能力和开发效率。从这一点来看,DirectUI在交互能力和开发效率上都有所提高,但其本质没有任何变化。从开发效率来看,它肯定比不上WPF;从交互能力来讲,传统的UI交互有被语音交互取代的趋势。
7. 更多参考


作者:AlgoPeek
链接:https://www.jianshu.com/p/ebdacd2343e3
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。





https://www.zhihu.com/question/22606115/answer/21964916
DirectUI框架,代表开源项目是Duilib





欢迎光临 firemail (http://firemail.wang:8088/) Powered by Discuz! X3