一:设置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的大小。