duilib学习[1] -- 整体框架

参考自:http://www.who1753.com/duilib-study-01.html

先盗一下图,方便更清楚地了解duilib的整体结构

duilib设计图:



1.1 工具库

这些类分布在Util文件夹中:

  • UI相关:CPoint / CSize / CDuiRect
  • 简单容器:CStdPtrArray / CStdValArray / CStdString / CStdStringPtrMap

1.2 控件库

控件库在duilib的实现中被分为了两块:Core和Control:

  • Core中包含的是所有控件公用的部分,里面主要是一些基类和绘制的封装。
  • Control中包含的就是各个不同的控件的行为了。

这当中尤其要注意控件基类CControlUI和容器基类CContainerUI,这是duilib核心类(如下图所示)中是很重要的两部分:

对于ControlUI和CContainerUI,我想比较深入了解后再总结,所以暂时这里先盗这些图留底(没错,我就是那么无耻,就喜欢盗图)。

时间: 2024-11-09 06:58:29

duilib学习[1] -- 整体框架的相关文章

Cocos2d-x学习之 整体框架描述

1.Cocos2d-x 整体描述 和传统的游戏引擎一样,cocos2d-x作为一个2d的游戏引擎,其也有以下几大概念组成: 导演(CCDiretor): 在cocos2d-x引擎中,CCDirector类是整个游戏的组织和控制核心,游戏的运行规则,游戏内的CCScene(场景).布景(CCLayer).角色(CCSprite)等的运动,均由CCDirector管理,其在游戏中起着指定游戏规则让游戏内的场景.布景和任务有序的运行.在整个游戏里面,一般只有一个导演,游戏开始和结束时,都需要调用CCD

Cocos2d-x学习笔记(二)Cocos2d-x整体框架描述

原创文章,转载请注明出处:http://blog.csdn.net/sfh366958228/article/details/38680123 上一节我们简单分析了HelloWorld工程,这一讲我们将进一步来看看Cocos2d-x的整体框架. 在了解Cocos2d-x的整体框架之前,我们不妨想想拍摄一部电影需要些什么? 导演.舞台(场景).布景.演员,有了这些基本条件后,在这些元素都有了之后,演员就可以根据剧本,表现不同的动作行为. 同理,做一个游戏就像是拍摄一部电影,你同样需要这些元素,而C

go微服务框架go-micro深度学习(一) 整体架构介绍

产品嘴里的一个小项目,从立项到开发上线,随着时间和需求的不断激增,会越来越复杂,变成一个大项目,如果前期项目架构没设计的不好,代码会越来越臃肿,难以维护,后期的每次产品迭代上线都会牵一发而动全身.项目微服务化,松耦合模块间的关系,是一个很好的选择,随然增加了维护成本,但是还是很值得的. 微服务化项目除了稳定性我个人还比较关心的几个问题: 一: 服务间数据传输的效率和安全性. 二: 服务的动态扩充,也就是服务的注册和发现,服务集群化. 三: 微服务功能的可订制化,因为并不是所有的功能都会很符合你的

Duilib学习笔记《03》— 控件使用

在前面已经对duilib有个一个基本的了解,并且创建了简单的空白窗体.这仅仅只是一个开始,如何去创建一个绚丽多彩的界面呢?这就需要一些控件元素(按钮.文本框.列表框等等)来完善. 一. Duilib控件简介 在之前空白窗体的基础上,在界面上添加了一些控件,让大家先对这些控件效果有个基本的认识.如下图所示: 基本控件 高级控件 一些控件的基本显示效果就如同上面两幅图所示.实际上,在Duilib学习笔记<01>—duilib整体框架认识中我们就已经提到过Duilib这个库的组成,其中就提到了控件这

Java集合总结之Collection整体框架

前段时间一直在忙一个物联网的项目,所以Java的学习一直搁置,从今天开始继续学习!望大家多提宝贵意见! java.util包中包含了一些在Java2中新增加的最令人兴奋的增强功能:类集.一个类集(collection)是一组对象.类集的增加使得许多java.util中的成员在结构和体系结构上发生根本的改变.它也扩展了包可以被应用的任务范围.Java的类集(Collection)框架使你的程序处理对象组的方法标准化.在Java 2出现之前,Java提供了一些专门的类如Dictionary,Vect

Duilib学习笔记《05》— 消息响应处理

在Duilib学习笔记<04>中已经知道了如何将窗体显示出来,而如何处理窗体上的事件.消息呢? 一. 系统消息 窗体显示的时候我们就已经说了,窗体是继承CWindowWnd类的,对于窗体的部分消息的处理,需要重载该类的LRESULT HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam); 函数.在显示窗体部分我们创建窗体WM_CREATE消息以及屏蔽标题栏WM_NCACTIVATE.WM_NCCALCSIZE.WM_NCPAINT等消息 

Duilib学习笔记《06》— 窗体基类WindowImpBase

在前面的例子中我们发现,窗口都是继承CWindowWnd.INotifyUI,然后重载相关函数去实现.显然,我们发现窗口的创建流程实际上都是差不多的,主要只是在OnCreate加载的配置文件不同等等…所以,能不能创建一个公有的窗体基类呢?其实,在duilib中已经提供了一个窗体基类 WindowImplBase:在基类内搭建窗口的消息框架,各处理函数为虚函数,子类可以重载处理函数,实现其处理. 此处我们以修改之前的代码为例来进行说明. 1. 窗体显示 CMainWndDlg类修改为继承Windo

duilib学习领悟(1)

学习duilib已经有一段时间,一直没时间写总结,今天得出空来,写写心得体会! 由于本人知识有限,若有错误地方,望批评指正.多谢.! 初识duilib 刚开始接触duilib的时候,觉的他好神奇,整个界面只有一个句柄,怎么控制子控件的?怎么布局的?觉得很神奇,打算一探究竟! 其实任何基于Windows的界面开发都离不开五步曲:  注册窗口类 创建窗口 显示更新窗口 消息循环 退出 duilib也逃不过微软的魔爪! 接下来我会基于这个五步曲逐步接开duilib的神秘面纱! 对diulib熟悉的人,

Java 线程池(一):开篇及Executor整体框架介绍

一.开篇 线程池.数据库连接池,在平时的学习中总能接触到这两个词,但它们到底是什么?和线程,数据库连接有什么关系?为什么需要“池”?“池”的概念及作用是什么?要弄清楚这些问题,就要深入到“池”的实现中去. 之前找实习工作时,时常有面试官问这类问题,自己平时知道如何使用Java的Executor线程池框架,但是具体的细节还真没感受,所以打算开始试着研究一下Executor线程池框架. 废话到此打住,正式开始! 二.Executor整体框架 让我们先站在一个较高的角度俯视一下Java线程池的整体结构