您的位置:首页 > 产品设计 > UI/UE

DuiLib库

2016-04-07 20:34 441 查看
下载地址:https://github.com/duilib/duilib

DuiLib库 我们把它分为四个模块(核心,基础,控件,另外的库),当前有些也会把它分为5个模块(用户界面层,数据,事件处理,渲染模块,插件模块)

我们先讲下四个模块里包含了那些类

一.核心模块:UIMarkup(解析XML), CMarkupNode(节点),CRenderClip(渲染区域控制), CRenderEngine(渲染引擎), CPaintManagerUI(绘制管理者),IMessageFilterUI(消息处理),INotifyUI(监听者类),CDialogBuilder(UI构建者),IDialogBuilderCallback(用户自定义控件),CControlUI(控件),
CDelegateBase(委托基类), CEventSource(事件源), CDelegate(委托), CDelegateStatic (静态委托)

二.基础模块:CPoint 点, CSize 宽高, CRect 矩形, CStdString 字符串, CWindowWind windows窗口, STRINCortID 资源ID, CStdStringMap 字符串map, CStdPtrArray 指针数组

三.控件模块:CEditUI 控件, CEditWnd 活跃窗口, CButtonUI 按钮控件, CLabelUI 标签控件, CScrollBarUI 滚动条控件, CSliderUI 滑块控件, CTextUI 文本控件, COptionUI 选项控件, CProgressUI 进度条控件, CTxtWinHost
文本窗口宿主, CRiochEditUI 富文本框控件, CActiveXUI ACtiveX组件, CActiveXWnd ActiveX窗口, CActiveXEnum 枚举ActiveX接口, CActiveXCtrl ActiveX容器, CComboWnd 活跃窗口, CComboUI Combo控件, CListBodyUI 列表体, IListCallBackUI 列表回调, IListOwnerUI 列表拥有者基类, IListUI 列表基类, CListUI 控件, CListHeaderUI
列表头, CListHeaderitemUI 列表头元素, IListitemUI 列表项基类, CListLabelElementUI 标签列表元素, CListTextElementUI 文本列表元素, CListContainerElementUI 器列表元素, IContainerUI 容器基类, CContainerUI 容器, CVerticalLayoutUI 纵向布局, CHorizontalLayoutUI 横向布局 CTileLayoutUI 平铺布局, CDialogLayoutUI
对话框容器, CTabLayoutUI 标签页容器。

四.其他库:XUzip 解压zip包, std_image 载入各种图像格式文件。

先讲一下核心模块里的类

1.CRenderClip 作用:渲染区域控制,设置在dc上绘制的区域,防止子控件绘制到父控件外侧(float属性控件除外)

函数:

GenerateClip() 产生一个剪切区域, hDC窗口句柄, rc区域, clip[out] 剪切区

GenerateRoundClip() 产生一个圆角剪切区域, hDC 窗口句柄, rcquyu, width 横向圆角弧度, height纵向圆角弧度, clip[out] 剪切区

UseOldClipBegin() 使用整个活跃区域作为剪切区, hDC窗口句柄, clip 剪切区

UseOldClipEnd() 使用当前控件有效区作为剪切区, hDC窗口句柄, clip剪切区

2.CRenderEngine 作用:渲染引擎

函数:

LoadImage() 加载位图

bitmap图像

type类型

mask隐蔽色

实现

1.读取文件,资源和zip包中图像文件数据到内存区,通过HIWORD(bitmap.m_lpstr)区别从资源中或文件中加载MAKEINTRESOURCE

2 创建DIB

3 通过stbi_koad_from_memory 加载数据文件并转化后复制到DIB中

4 返回TImageInfo结构

CRenderEngine 渲染引擎

LoadImage() 加载图像

bitmap 图像

type 类型

mask 隐蔽色

实现:

1 读取文件,资源和zip包中图像文件数据到内存, 通过HWORD(bitmap.m_lpstr)区别从资源中或文件中加载MAKEINTRESOURCE

2 创建DIB

3 通过stbi_load_from_memory加载数据文件并转化后复制到DIB中

4 返回TImageInfo结构

DrawImage() 绘制图像

hDC 设备句柄

hBitmap 位图句柄

rc 对象区域

rcPaint 绘制区域

rcBmpPart 位图区域

rcCorners 拉伸区域

alphaChannel alpha通道

uFade 透明度

hole 居中

xTiled 横向平铺

yTiled 纵向平铺

实现

1 CreateCompatibleDC 创建内存设备句柄

2 SelectObject 将位图选入内存设备句柄

3 AlphaBlend alpha混合

4 BitBlt 或者 StretchBlt 绘制到内存设备句柄

5 SelectObject 将老的位图选入内存设备句柄

6 DeleteDC 释放句柄

DrawImageString 标识字符串绘制图像

hDC 设备句柄

pManager 绘制管理者

rc 对象区域

rcPaint 绘制区域

pStrImage 标识字符串

pStrModify 标识字符串

实现:

1 分析标识字符串获取属性

2 获取图像数据

3 绘制图像

DrawColor 绘制颜色

hDC 设备句柄

rc 对象区域

color 颜色

实现

如果不需要alpha混合 则SetBkColor() ExtTextOut()

否则 创建一个大小的32位DIB

DrawGradient() 绘制渐变

hDC 设备句柄

rc 对象区域

dwFirst 颜色1

dwSecond 颜色2

bVertical 渐变方向 true垂直 false 水平

nStep 步长

实现:

1 渐变填充

2 alpha混合

DrawLine 绘制直线

DrawRect 绘制矩形

DrawRoundRect 绘制圆角矩形

DrawText 绘制文字

DrawHtmlText 绘制“mini-html”标识字符串

hDC设备句柄

pManager 绘制管理者

rc 对象区域

pstrText “mini-html” 标识字符串

dwTextColor 字符串类型

pLinks 产生链接效果的区域组

sLinks 产生链接效果的区域组数量

nLinkRects 产生链接效果的区域组数量

uStyle 类型

GenerateBitmap 产生一个BMP位图

pManager 绘制管理者

pControl 控制句柄

rc 对象区域

返回BMP句柄

转自:http://blog.csdn.net/x931100537/article/details/39291973
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: