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

第一章 第一小节Duilib基本架构
  从上图中可以看出,所有的控件都继承至基础控件CControlUI这个类,所以这个类的内容,是底层绘制的关键。在后面的章节中,再详细展开,顺便提一句,在学习一个新库的时候,一定要有一定的耐心和时间,才能牢牢掌握一个库,否则在出现问题时候,很难分析源头。
  第二个图是容器关系图,有一定界面编程的朋友,都知道,为了方便界面控件的摆放,需要许多基础的容器控件来辅助界面设计,这些就是界面容器,如下图所示:

第一章 第一小节Duilib基本架构
  在上图中,可以清晰看到界面容器类CContainerUI它继承至CControlUI和IContainerUI接口,说明它本身也是一个控件,一个可以包含子控件的容器控件。有了以上两张图的了解,相信大家对duilib这个库有了基础的了解。后面有更详细的介绍。

欢迎光临知了软件开发网络平台,本公司定制开发各类软件,主要方向为桌面专业软件开发和插件定制开发,桌面软件主要包括文字图形识别类软件,信息管理类软件,3D打印类软件,视频类软件以及其它涉及专业的各类图形图像处理软件。插件包含AE插件,AI插件,PS插件,PDF插件,3DMAX插件以及Word,Excel等Office插件开发。详情请咨询,微信QQ:312117271,手机:18928899728,邮箱: [email protected]
公司网址:http://www.zhiliaos.com/

相关文章: