- 1.什么是Duilib
- 2.作者答疑
在互联网时代,由于信息传播的便利,出现了许多共享的开源产品,这是许多小公司和工作室最大的福利,甚至为某些大机构和公司也提供了许多共享的知识方案,其中duilib就是这样一种可以商用的知识库,在剖析duilib这个开源库之前,对共享知识的原作者表示感谢。 本书的读者,主要面对的是初入行的小白程序员,第一个问题,Duilib是什么,由什么开发。Duilib是一款强大的用于C++界面开发的工具库。它采用直接绘制的方式,生成各种子控件,这种方式许多时候又称DirectUI。这个时候,必须提下一个基础知识,在win32桌面应用下,微软为大家开发窗口提供的原生接口,就是基于窗口句柄的形式创建的。这种方式为适用窗口在许多方面的应用场景,涉及到知识点非常复杂,不利于专注于界面的绘制。这时候就诞生了这种直接绘制的方式称为DirectUI。 经过原作者和开源界的不断完善和努力,duilib作为一种界面开发方式,已经相对成熟,当然不可以避免的具有一些开源库的通病,就是在使用起来的时候,还是有许多的bug。所以如果你打算使用它开发一款商业产品的界面,还是需要对它本身非常熟悉,这样才可以轻车熟路的解决一些bug。 基于前面介绍到特点,它采用c++开发,基于语言方面使用的便利性,它使用最多的场景还是作为c++语言项目的界面库。当然更准确的来说,它基本采用win32的api来绘制,所以主要应用在windows上运行的软件项目。 前面的基本特点已毕,进入技术视角。 duilib作为一个采用c++开发的库,它肯定是由一些列类组成,所以需要搞清楚这些类之间的继承和组合关系,然后才能方便恰当的使用它们,第一个图是控件关系图。如下所示: 从上图中可以看出,所有的控件都继承至基础控件CControlUI这个类,所以这个类的内容,是底层绘制的关键。在后面的章节中,再详细展开,顺便提一句,在学习一个新库的时候,一定要有一定的耐心和时间,才能牢牢掌握一个库,否则在出现问题时候,很难分析源头。 第二个图是容器关系图,有一定界面编程的朋友,都知道,为了方便界面控件的摆放,需要许多基础的容器控件来辅助界面设计,这些就是界面容器,如下图所示:
在上图中,可以清晰看到界面容器类CContainerUI它继承至CControlUI和IContainerUI接口,说明它本身也是一个控件,一个可以包含子控件的容器控件。有了以上两张图的了解,相信大家对duilib这个库有了基础的了解。后面有更详细的介绍。
如有疑问,请留言。