炫彩界面库AU3教程10,List列表保存字体颜色
主要使用如下两个函数XList_SetItemData设置项用户数据XList_GetItemData获取项用户数据
设置文本颜色时将颜色信息写入项用户数据中,绘制项目时读出并设置相关文本颜色
大家可以举一反三,合理利用这两个函数
请看完整代码:#region ;**** 参数创建于 ACNWrapper_GUI ****
#AutoIt3Wrapper_UseUpx=n
#AutoIt3Wrapper_UseX64=n
#endregion ;**** 参数创建于 ACNWrapper_GUI ****
#include "XCGUI_Fun.au3"
XInitXCGUI()
$create = XWnd_Create("500", "500", "500", "500", "窗口测试", 47)
$XList = XList_Create("20", "40", "440", "400", $create)
XList_SetItemHeightDefault($XList, 35, 40) ;设置项未选中高度,选中高度
$ggg = XList_SetItemTemplateXML($XList, @ScriptDir & "\List_Item.xml") ;加载列表模板
XList_AddColumn($XList, 100) ;设置列宽度
XList_AddColumn($XList, 100)
XList_AddColumn($XList, 100)
$XAm = XAdapterMap_Create()
XList_BindAdapterHeader($XList, $XAm)
$XA = XAdapterTable_Create()
XList_BindAdapter($XList, $XA)
XAdapterTable_AddColumn($XA, "name")
XAdapterTable_AddColumn($XA, "name2")
XAdapterTable_AddColumn($XA, "name3")
For $i = 0 To 20
XAdapterTable_AddItemTextEx($XA, "name", "ListBox")
XAdapterTable_SetItemText($XA, $i, 1, "ListBox-" & $i & "-1")
XAdapterTable_SetItemText($XA, $i, 2, "ListBox-" & $i & "-2")
Next
XEle_RegEventC1($XList, "_OnListTemplateCreateEnd", $XE_LIST_TEMP_CREATE_END, "int;int") ;注册列表事件
$btn2 = XBtn_Create("400", "460", "75", "25", "退出程序", $create)
$btn3 = XBtn_Create("300", "460", "75", "25", "修改颜色", $create)
XEle_RegEventC($btn2, "btn2")
XEle_RegEventC($btn3, "btn3")
XWnd_ShowWindow($create)
XRunXCGUI()
Func _OnListTemplateCreateEnd($hEle, $pItem)
$a = _list_item_i() ;获得 list_item_i 数据结构
CopyMemory($a, $pItem)
$text = XList_GetTemplateObject($XList, DllStructGetData($a, 1), 0) ;获取句柄
$pd = XC_IsHXCGUI($text, $XC_SHAPE_TEXT) ;判断获取的句柄是否为文本
If $pd = True Then
$fsts = XList_GetItemData($XList, DllStructGetData($a, 1), 0) ;获取项用户数据
XShapeText_SetTextColor($text, $fsts, 255) ;设置文本颜色
EndIf
EndFunc ;==>_OnListTemplateCreateEnd
Func btn3($bh)
For $i = 0 To 3
XShapeText_SetTextColor(XList_GetTemplateObject($XList, $i, 0), 0xFF00FF, 255) ;设置文本颜色
XList_SetItemData($XList, $i, 0, 0xFF00FF) ;设置项用户数据
Next
XEle_RedrawEle($XList, 1)
EndFunc ;==>btn3
Func btn2($bh)
xquit_acn($create)
EndFunc ;==>btn2
版主为了大家用上特别的界面真是呕心沥血啊 {:face (270):} 回复 2# afan
呵呵,这也是我学习的过程,既然身为版主,总该做点什么 学习了。。。。。。。。。。。。 回复 1# guland
如果要全页都改变字体颜色,某列整列改变字体颜色,某列某行改变字体颜色? 回复 5# chzj589
这样可改变第一列
For $i = 0 To 20
XList_SetItemData($XList, $i, 0, 0xFF0000)
Next 回复 6# chzj589
它只能修改显示出来那部分的颜色。。。。所以无法修改全部项的字体颜色, 回复 5# chzj589
建议修改项目背景颜色 List_Item.xml 这个文件没有提供啊 error: XEle_RegEventC1() 调用参数的数量错误.
XEle_RegEventC1($XList, "_OnListTemplateCreateEnd", $XE_LIST_TEMP_CREATE_END, "int;int")
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
"Z:\workitems\GUI 皮肤\XCGUI_Fun.au3"(1320,47) : 引用: 定义为 XEle_RegEventC1().
Func XEle_RegEventC1($_hEle, $_nEvent, $_pFun)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
"Z:\workitems\GUI 皮肤\炫彩界面库AU3教程10,List列表保存字体颜色.au3"(82,27) : error: _list_item_i(): 未定义的函数.
$a = _list_item_i()
~~~~~~~~~~~~~~~~~~~~~~~~~~^
"Z:\workitems\GUI 皮肤\炫彩界面库AU3教程10,List列表保存字体颜色.au3"(83,30) : error: CopyMemory(): 未定义的函数.
CopyMemory($a, $pItem)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 回复 10# xz00311
去下载炫彩助手 本帖最后由 guland 于 2016-6-25 12:48 编辑
好贴就是好贴 回复 11# guland
如果第二列,第三列呢? 回头我研究一下 6666666666666666666666666666
页:
[1]