mirror of
https://github.com/netease-im/NIM_Duilib_Framework.git
synced 2026-10-17 05:30:32 +08:00
9.7 KiB
9.7 KiB
Box(自由布局)
可用属性
| 属性名称 | 默认值 | 参数类型 | 用途 |
|---|---|---|---|
| padding | 0,0,0,0 | RECT | 内边距,如(2,2,2,2) |
| childmargin | 0 | INT | 子控件之间的额外距离,如(4) |
| mousechild | true | BOOL | 本控件的子控件是否可以响应用户操作,如(true) |
可用接口
| 方法名称 | 用途 |
|---|---|
| SetOwner | 设置所有者 |
| SetFloatPos | 设置浮动状态下的坐标信息 |
| SetAttribute | 设置布局属性 |
| ArrangeChild | 调整内部所有控件的位置信息 |
| AjustSizeByChild | 根据内部子控件大小调整容器自身大小 |
| GetPadding | 获取内边距 |
| SetPadding | 设置内边距,相当于设置客户区 |
| GetChildMargin | 获取子控件之间的额外边距 |
| SetChildMargin | 设置子控件之间的额外边距 |
| GetInternalPos | 获取除了内边距外的可用范围 |
| FindSubControl | 查找指定子控件 |
| FindSelectable | 查找下一个可选控件的索引(面向 list、combo) |
| GetItemAt | 根据索引查找指定控件 |
| GetItemIndex | 根据控件指针获取索引 |
| SetItemIndex | 设置控件索引(内部会重新排列控件位置) |
| GetCount | 获取子控件数量 |
| Add | 添加一个控件到容器中 |
| AddAt | 向指定位置添加一个控件 |
| Remove | 根据控件指针从容器中移除一个控件 |
| RemoveAt | 根据控件索引从容器中移除一个控件 |
| RemoveAll | 移除所有子控件 |
| SwapChild | 交换子控件位置 |
| ResetChildIndex | 重置一个子控件位置 |
| IsAutoDestroy | 判断是否自动销毁 |
| SetAutoDestroy | 设置控件是否自动销毁 |
| IsDelayedDestroy | 判断窗口关闭后是否自动销毁 |
| SetDelayedDestroy | 设置窗口关闭后是否自动销毁 |
| IsMouseChildEnabled | 获取容器是否响应鼠标操作 |
| SetMouseChildEnabled | 设置容器响应鼠标操作 |
| GetLayout | 获取容器布局对象指针 |
| RetSetLayout | 重新关联布局对象 |
| GetPaddingPos | 获取内边距的位置信息 |
| AttachBubbledEvent | 绑定事件处理函数 |
| AttachXmlBubbledEvent | 绑定 XML 中编写的 Event 和 BubbleEvent 事件的处理函数 |
SetOwner
设置所有者
void SetOwner(Box* pOwner)
- 返回值:无
SetFloatPos
设置浮动状态下的坐标信息
static CSize SetFloatPos(Control* pControl, UiRect rcContainer)
- 参数:
pControl控件句柄rcContainer要设置的位置信息
- 返回值:返回控件最终的位置信息
SetAttribute
设置布局属性
virtual bool SetAttribute(const std::wstring& strName, const std::wstring& strValue)
- 参数:
strName要设置的属性名strValue要设置的属性值
- 返回值:true 设置成功,false 属性不存在
ArrangeChild
调整内部所有控件的位置信息
virtual CSize ArrangeChild(const std::vector<Control*>& items, UiRect rc)
- 参数:
items控件列表rc当前容器位置信息
- 返回值:返回排列后最终盒子的宽度和高度信息
AjustSizeByChild
根据内部子控件大小调整容器自身大小
virtual CSize AjustSizeByChild(const std::vector<Control*>& items, CSize szAvailable)
- 参数:
items控件列表szAvailable子控件允许的最大宽度
- 返回值:返回排列后最终盒子的宽度和高度信息
GetPadding
获取内边距
virtual UiRect GetPadding()
- 返回值:返回内边距四边的大小
SetPadding
设置内边距,相当于设置客户区
virtual void SetPadding(UiRect rcPadding, bool bNeedDpiScale = true)
- 参数:
rcPadding内边距数据bNeedDpiScale是否根据 DPI 自适应,默认为 true
- 返回值:无
GetChildMargin
获取子控件之间的额外边距
virtual int GetChildMargin()
- 返回值:返回额外间距的数值
SetChildMargin
设置子控件之间的额外边距
virtual void SetChildMargin(int iMargin)
- 参数:
iMargin要设置的边距数值
- 返回值:无
GetInternalPos
获取除了内边距外的可用范围
UiRect GetInternalPos()
- 返回值:返回可用范围位置信息
FindSubControl
查找指定子控件
Control* FindSubControl(const std::wstring& pstrSubControlName)
- 参数:
pstrSubControlName子控件名称
- 返回值:返回子控件指针
FindSelectable
查找下一个可选控件的索引(面向 list、combo)
virtual int FindSelectable(int iIndex, bool bForward = true)
- 参数:
iIndex指定要起始查找的索引bForwardtrue 为递增查找, false 为递减查找
- 返回值:下一个可选控件的索引,返回 -1 为没有可选控件
GetItemAt
根据索引查找指定控件
virtual Control* GetItemAt(std::size_t iIndex)
- 参数:
iIndex控件索引
- 返回值:返回控件指针
GetItemIndex
根据控件指针获取索引
virtual int GetItemIndex(Control* pControl)
- 参数:
pControl控件指针
- 返回值:返回 pControl 所指向的控件索引
SetItemIndex
设置控件索引(内部会重新排列控件位置)
virtual bool SetItemIndex(Control* pControl, std::size_t iIndex)
- 参数:
pControl控件指针iIndex要设置的索引值
- 返回值:返回 true 设置成功,false 设置失败
GetCount
获取子控件数量
virtual int GetCount()
- 返回值:返回子控件数量
Add
添加一个控件到容器中
virtual bool Add(Control* pControl)
- 参数:
pControl控件指针
- 返回值:返回 true 添加成功,false 为添加失败
AddAt
向指定位置添加一个控件
virtual bool AddAt(Control* pControl, std::size_t iIndex)
- 参数:
pControl控件指针iIndex在该索引之后插入控件
- 返回值:返回 true 为添加成功,false 为添加失败
Remove
根据控件指针从容器中移除一个控件
virtual bool Remove(Control* pControl)
- 参数:
pControl控件的指针
- 返回值:返回 true 为移除成功,false 为移除失败(控件可能不存在)
RemoveAt
根据控件索引从容器中移除一个控件
virtual bool RemoveAt(std::size_t iIndex)
- 参数:
iIndex要移除的控件索引
- 返回值:返回 true 为移除成功,false 为移除失败(索引值太小或超出了子控件总数)
RemoveAll
移除所有子控件
virtual void RemoveAll()
- 返回值:无
SwapChild
交换子控件位置
void SwapChild(Control* pChild1, Control* pChild2)
- 参数:
pChild1子控件1 指针pChild2子控件2 指针
- 返回值:无
ResetChildIndex
重置一个子控件位置
void ResetChildIndex(Control* pChild, std::size_t iIndex)
- 参数:
pChild控件指针iIndex要重置的位置
- 返回值:无
IsAutoDestroy
判断是否自动销毁
virtual bool IsAutoDestroy()
- 返回值:true 为自动销毁,false 为不自动销毁
SetAutoDestroy
设置控件是否自动销毁
virtual void SetAutoDestroy(bool bAuto)
- 参数:
bAutotrue 为自动销毁,false 为不自动销毁
- 返回值:无
IsDelayedDestroy
判断窗口关闭后是否自动销毁
virtual bool IsDelayedDestroy()
- 返回值:true 为自动销毁,false 为不自动销毁
SetDelayedDestroy
设置窗口关闭后是否自动销毁
virtual void SetDelayedDestroy(bool bDelayed)
- 参数:
bDelayedtrue 为自动销毁,false 为不自动销毁
- 返回值:无
IsMouseChildEnabled
获取容器是否响应鼠标操作
virtual bool IsMouseChildEnabled()
- 返回值:true 为响应,false 为不响应
SetMouseChildEnabled
设置容器响应鼠标操作
virtual void SetMouseChildEnabled(bool bEnable = true)
- 参数:
bEnable设置为 true 为响应鼠标操作,设置为 false 为不响应,默认为 true
- 返回值:无
GetLayout
获取容器布局对象指针
virtual Layout* GetLayout()
- 返回值:返回容器关联的布局对象指针
RetSetLayout
重新关联布局对象
virtual void RetSetLayout(Layout* pLayout)
- 参数:
pLayout布局对象指针
- 返回值:无
GetPaddingPos
获取内边距的位置信息
virtual UiRect GetPaddingPos()
- 返回值:返回内边距的位置信息
AttachBubbledEvent
绑定事件处理函数
void AttachBubbledEvent(EventType eventType, const EventCallback& callback)
- 参数:
eventType事件类型
- 返回值:callback 指定回调函数
AttachXmlBubbledEvent
绑定 XML 中编写的 Event 和 BubbleEvent 事件的处理函数
void AttachXmlBubbledEvent(EventType eventType, const EventCallback& callback)
- 参数:
eventType事件类型
- 返回值:callback 指定回调函数