接下来,继续分析duilib之UI布局Layout,目前提供的布局有:VerticalLayout、HorizontalLayout、TileLayout、TabLayout、ChildLayout分别为垂直布局、水平布局、平铺布局、TAB布局、子窗体布局;
一般项目中用得比较多的是垂直布局、水平布局,我们将分别分析各布局;
VerticalLayout:垂直布局,继承于CContainerUI容器UI类;而CContainerUI也继承于CControlUI,故VerticalLayout实际上也是一种UI控件;
成员函数:
GetClass:获取类名称(VerticalLayoutUI);
GetInterface:获取类名下的类对象;
GetControlFlags:获取控件标记;
SetSepHeight/GetSepHeight:设置/获取分割符高度;
SetSepImmMode/IsSepImmMode:设置/获取当前拖动分隔符时,是否立即改变大小;
SetAttribute:设置指定名称的属性值;
DoEvent:事件处理函数(主要处理鼠标事件的操作);
SetPos:设置位置,调整控件位置以及滚动条;
DoPostPaint:绘制事件,用以绘制容器分割区域颜色为0xAA000000;
GetThumbRect:获取分割区域;
成员变量:
m_iSepHeight:分隔符高度;
m_uButtonState:按钮(控件)状态;
ptLastMouse:鼠标最近一次所在位置;
m_rcNewPos:控件区域位置;
m_bImmMode:是否为立即模式(立即改变大小);