duilib--list中动态添加数据,且表中添加控件时

我与影子孤独终老i 提交于 2020-01-01 05:01:16

参考链接:
https://blog.csdn.net/tragicguy/article/details/21893065
https://blog.csdn.net/xdrt81y/article/details/17588961
主要有三步:
一、 修改CListHeaderItemUI的的基类,
由CControlUI 改为CContainerUI
class DUILIB_API CListHeaderItemUI : public CContainerUI
修改CListHeaderItemUI中所有出现的CControlUI ,全部改为CContainerUI。
二、重写CListContainerElementUI::SetPos函数
void CListContainerElementUI::SetPos(RECT rc, bool bNeedInvalidate) 中setpos函数,只需要重写这个函数的就行了。

如果不重写这个函数,会造成,第三列数据也写在第二列,数据重叠了。

三、XML的编写:
主XML:

<List name="listview" padding="15,15,0,0" width="350" height="340" headerbkimage="list_header_bg.png" style="list_style" itemlinecolor="#ffff0000"  itemshowhtml="true" itemtextcolor="ff048ae0" bkcolor="ffffffff"  itembkcolor="ffffffff"  sepheight="5"  itemfont="1"   inset="1,1,1,1" bordercolor="#FF1B4876" bordersize="1" itemselectedtextcolor="ff048ae0" itemhottextcolor="ff048ae0" itemalign="center"  vscrollbar="true" hscrollbar="true" sepwidth="2"  sepimage="list_header_sep.png" >
            <ListHeaderItem text="序号" width="80" inset="1,0,1,0"   font="1"  textcolor="ff048ae0" sepwidth="1" sepimage="list_header_sep.png" />  <!-- textcolor是设置表头的颜色 -->
               <ListHeaderItem text="倒高" width="120"  font="1" textcolor="ff048ae0" sepwidth="1"  sepimage="list_header_sep.png"/>
               <ListHeaderItem text="拉出值" width="120"  font="1" textcolor="ff048ae0" sepwidth="1" sepimage="list_header_sep.png"/>
                  <include source="listitem.xml"/>
        </List> 

子XML为
对于ListContainerElement中 某一行数据为:

<?xml version="1.0" encoding="utf-8"?>
<Window >
  <Font id="100" name="宋体" size="18" underline="true" shared="true"/>
  <ListContainerElement name="con_1_conlist" height="30">
     <Option name="data_1_opt" text=""  padding="0,0,0,0" width="80" height="30" selected="true" align="center" normalimage="file='checkbox.png' source='30,0,45,15' dest='40,10,55,25'  " selectedimage="file='checkbox.png' source='75,0,90,15' dest='40,10,55,25'" hotimage="file='checkbox.png' source='75,0,90,15' dest='40,10,55,25'"/>
              
    <Label name="data_11_label" text="1002" width="120"  align="center"/>
    <Label name="data_12_label" text="91" width="120" align="center"/>
  </ListContainerElement>
 
</Window>

.
根据上述三种就可以 修改了。效果下图所示:
在这里插入图片描述

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!