Duilib 中 list中 设置item的高度,颜色,字体等

一:设置item子项的高度:

方法一:
由CListTextElementUI 来设置

CListUI * pUserList = static_cast<CListUI*>(m_pm.FindControl(_T("userlist")));
 pUserList->SetTextCallback(this);// CDialogUI中必须继承于IListCallbackUI,否则此处报错
 for (int i = 0; i < 20; i++)
 {
  CListTextElementUI* pListElement = new CListTextElementUI;
  pListElement->SetFixedHeight(60);//子项的高度  解决拉,嘻嘻 pUserList->Add(pListElement);
 }

使用 pListElement->SetAttribute(_T(“font”),_T(“3”)); 去设置不起作用,。
list子项的高度必须用SetFixedHeight 去设置才对,这样高度才会有变化。

在这里插入图片描述

方法二:
不用上面的代码SetFixedHeight 去设置高度,直接使用listheader 来设置高度就可以拉。XML代码如下:就是设置表头的高度

<List name="userlist" padding="15,15,0,0" width="370" height="350" 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" >
        <ListHeader height="50" >
            <ListHeaderItem text="序号" width="80"    font="1"  textcolor="ff048ae0"   itemlinecolor="#ffC6CFD8" sepwidth="1" sepimage="list_header_sep.png"  />  <!-- textcolor是设置表头的颜色 -->
               <ListHeaderItem text="倒高" width="120"  font="1" textcolor="ff048ae0"  itemlinecolor="#ffC6CFD8" sepwidth="1" sepimage="list_header_sep.png"  />
               <ListHeaderItem text="拉出值" width="120"  font="1" textcolor="ff048ae0"  sepwidth="1" sepimage="list_header_sep.png"  />
            <ListHeaderItem text="" width="20"  font="1" textcolor="ff048ae0" />
        </ListHeader>
          </List>  

在这里插入图片描述

二:设置item子项的颜色

由List控件中 在XML中属性设置itemtextcolor 来控制

 <List name="userlist" width="500" height="260" itemhlinesize="5" itemtextcolor= "0000ffff"  >
        <ListHeaderItem text="昵称" width="120" normalimage="headerctrl_normal.bmp"  />
           <ListHeaderItem text="游戏等级" width="60"  />
           </List>

这样设置的颜色为:
在这里插入图片描述

三:设置item子项的字体大小:

是用List中 itemfont属性来设置

 <List name="userlist" width="500" height="260" sepheight="5"  itemtextcolor= "0000ffff" itemfont="3" >

其中:itemfont的序号为font 中表的序号

<Font name="微软雅黑" size="14" bold="false" italic="false" default="true" id="0" />
 <Font name="微软雅黑" size="16" bold="false" italic="false" id="1" />
 <Font name="微软雅黑" size="18" bold="false" italic="false" id="2" />
 <Font name="微软雅黑" size="22" bold="true" italic="false" id="3" /> 
 <Font name="微软雅黑" size="24" bold="true" italic="false" id="4" />

在这里插入图片描述

List表头字体大小设置

上图中list表头中字体大小比较小,使用的是默认值。直接在ListHeaderItem 上设置字体,颜色,就是改变了表头。
XML如下所示:

<ListHeaderItem text="昵称" width="120"   textcolor="ffff0000" font="5" />

ListHeaderItem中font是字体大小,text color是颜色大小。
如下图所示:我只改了第一个表头,就是上图中XML所示。
在这里插入图片描述

四:设置宽度时:显示item子项个数不全

发现使用pListElement->SetFixedWidth(120); 中 宽度比较小时,item子项只显示部分,不能全部显示。最简单的方法就是不设置宽度拉。

五:item的消息处理:

notify中平行于 clicked 的消息处

else if (msg.sType == _T("itemactivate"))
 {
  int ndex = msg.pSender->GetTag();
  CDuiString sMessage = _T("Click: ");
  CString lpText;
  lpText.Format(_T("%d"), ndex);
  sMessage += lpText;
  ::MessageBox(NULL, sMessage.GetData(), _T("提示(by tojen)"), MB_OK);
 }

六:list设置 网格 大小及颜色

xml如下所示:

<List name="userlist" padding="15,15,0,0" width="350" height="340" headerbkimage="list_header_bg.png"  itemhlinesize="2" itemhlinecolor="#FFFFC3C3"  itemlinecolor="#ffff0000" itemvlinesize="2" itemvlinecolor="#FFFFC3C3" itemshowhtml="true" itemtextcolor="ff048ae0" bkcolor="ffffffff"  itembkcolor="ffF4F8FF" itemaltbk="true"  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"    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"/>
              </List> 

其中:
headerbkimage=“list_header_bg.png"为:给表头 最下面添加一个 水平分割线
itemhlinesize=“2” itemhlinecolor=”#FFFFC3C3" 为水平分割线的大小和颜色
itemvlinesize=“2” itemvlinecolor="#FFFFC3C3"为垂直分割线的大小和

在这里插入图片描述

如果不设置的话:为下图所示:

在这里插入图片描述

同理:

可根据List属性表中 开头带item的去设置 子项item的大小。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值