duilib库分析日志 (一) : 简单了解下duilib库

最近一直在想做个DirectUI库. 先找了几个UI库, 也没做过啥Demo. 1年前看过国外的viksoe库(URL: http://www.viksoe.dk/code/index.htm) 因水平有艰也没能坚持看完.

后来找到国内一款牛X的开源库duilib, (URL: www.duilib.com)这个团队还是基于viksoe库开发的, 但完善的很好.  其中有个UIDesigner设计器可以快捷的设计出duilib库可以解析的XML文件( 设计者的主页: http://www.taxue.org ).  以上都是牛人.   其实到他们的BBS会有很多文档可以参考. http://bbs.duilib.com

本人只想快点跟上他们, 所以会陆续在此记录理解到的东西. 


1. 整个框架我没法画出来, 还好"踏雪流云"已经画出.(URL: http://www.taxue.org/?p=55  )可以参考下.

2. 简单记录下主要类的功能

CPaintManagerUI很重要的一个类, 管理所有控件树, 并对控件相关消息产生相应的用户层的事件. 显示控件到用户窗口上.

CWindowWnd 相关于WTL库里的CWindow库. 有创建窗口对象, 注册窗口类, 接管消息处理的函数. 也就用户自定窗口的父类.

CControl 所有DUI控件的基础类. 以后的所有控件都会从这个类继承. 包含了控件所需的基本信息. 

CContainter窗口类的基类. 所有布局类, 列表控件, 组合框, 都会继承于此. 功能是可以放置基本控件或自定义控件类对象. 还有水平于垂直滚动条功能.

CDialogBuilder解析Skin相关的XML文件, 并转为控件树. 包含了读文件/解压包文件功能, 会利用CMarkup类解析XML中的元素和属性, 并设置到相应的控件对象中.


CDelegate相关类挺有意思, 类似C#里的委托功能. 

CRender类对于区域管理打包打的不错.(主要操作HRGN对象)

CRenderEngine  这类纯粹就是用于方便画图. 有关基本线条, 贴图, 透明贴图很有帮助. 



恩.... 现在就大概看了这些.  个人大概的分析, 所以难免会出错. 希望能指正.   下回看下消息处理流程.



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值