找回密码
 加入
搜索
查看: 7580|回复: 11

[GUI管理] [已解决]如何设置listview某行的文本颜色?

  [复制链接]
发表于 2010-7-10 23:18:52 | 显示全部楼层 |阅读模式
本帖最后由 itljl 于 2010-8-18 12:29 编辑

下面的代码我们可以搜索到指定的文本的行数,但是,如何将这行文字设定为红色呢?谢谢。偿试过_GUICtrlListView_SetTextColor,但他是设置整个listview的颜色了。
#include <GUIConstantsEx.au3>
#include <ListViewConstants.au3>
#include <WindowsConstants.au3>
#include <GuiListView.au3>

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 591, 349, 192, 114)
$ListView1 = GUICtrlCreateListView("", 24, 24, 546, 302)
GUICtrlSendMsg($ListView1, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_GRIDLINES, $LVS_EX_GRIDLINES)
_GUICtrlListView_AddColumn($ListView1, "任务", 150)
_GUICtrlListView_AddColumn($ListView1, "状态", 50)


GUICtrlCreateListViewItem("CCTV_654|正在运行", $ListView1)
GUICtrlCreateListViewItem("CCTV_65|正在运行", $ListView1)
GUICtrlCreateListViewItem("CCTV_6|正在运行", $ListView1)

GUICtrlCreateListViewItem("CCTV_001|CCTV_65", $ListView1)
GUICtrlCreateListViewItem("CCTV_003|CCTV_654", $ListView1)

GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

$a = ControlListView($form1, "", $listview1, "FindItem", "CCTV_6")
MsgBox(0,0,$a)




While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit

        EndSwitch
WEnd
发表于 2010-7-10 23:32:28 | 显示全部楼层
本帖最后由 afan 于 2010-7-10 23:33 编辑
#include <GUIConstantsEx.au3>
#include <ListViewConstants.au3>
#include <WindowsConstants.au3>
#include <GuiListView.au3>

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 591, 349, 192, 114)
$ListView1 = GUICtrlCreateListView("", 24, 24, 546, 302)
GUICtrlSendMsg($ListView1, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_GRIDLINES, $LVS_EX_GRIDLINES)
_GUICtrlListView_AddColumn($ListView1, "任务", 150)
_GUICtrlListView_AddColumn($ListView1, "状态", 50)


GUICtrlCreateListViewItem("CCTV_654|正在运行", $ListView1)
GUICtrlCreateListViewItem("CCTV_65|正在运行", $ListView1)
GUICtrlCreateListViewItem("CCTV_6|正在运行", $ListView1)

GUICtrlCreateListViewItem("CCTV_001|CCTV_65", $ListView1)
GUICtrlCreateListViewItem("CCTV_003|CCTV_654", $ListView1)

GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

$a = ControlListView($form1, "", $listview1, "FindItem", "CCTV_6") 
GUICtrlSetColor(_GUICtrlListView_GetItemParam($ListView1, $a), '0xFF0000') ;红

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit

        EndSwitch
WEnd

评分

参与人数 1金钱 +10 贡献 +1 收起 理由
itljl + 10 + 1

查看全部评分

 楼主| 发表于 2010-7-10 23:54:21 | 显示全部楼层
回复 2# afan


    谢谢楼上的兄弟,每次你都能解决看似不可能完成的任务。
代码成功运行,我想请教的是。
我看了一下帮助。
_GUICtrlListView_GetItemParam($hWnd, $iIndex)
成功的返回值是: 应用程序指定的值

这里“应用程序指定的值”应该就是控件ID(控件标识符)了?
另请教控制ID和控件句柄之间是什么关系呢?
发表于 2010-7-11 00:31:49 | 显示全部楼层
呵呵,以前看到过此类例子~
_GUICtrlListView_GetItemParam 我的理解是在未更改GUICtrlCreateListViewItem 项目应用值时,返回的便是控件ID,而如果设置过应用值,则返回的就是应用值了,此时设置颜色将无效,那就需要在GUICtrlCreateListViewItem 时用(数组)变量盛放其ID,在搜索时用 GuiCtrlRead($id) 匹配。

控件ID和句柄的关系我的理解是它们之间没有直接的关系,控件ID是程序自身分配的唯一标识,是固定不变的,而句柄是由系统分配的,每次启动程序都会改变,在程序自身或系统中都是唯一的。
发表于 2010-7-11 04:28:30 | 显示全部楼层
发表于 2010-7-11 10:10:04 | 显示全部楼层
是这个吗
netegg 发表于 2010-7-11 04:28



    好东西,还能设置子项颜色,学习了~
发表于 2010-7-11 10:21:18 | 显示全部楼层
能搜到的!!
 楼主| 发表于 2010-7-11 19:43:40 | 显示全部楼层
回复 5# netegg


    谢谢这位兄弟回复,要设置了点击的颜色我会的,只是设置某行的值,而不是选中的,或者点击的我就不会了。
发表于 2010-7-11 20:21:31 | 显示全部楼层
本帖最后由 netegg 于 2010-7-11 20:30 编辑

回复 8# itljl
把click动作换成指定的就行了
自定义个函数_guidtrllistview_setitem_color($hListview, $item, $subitem, $icolor)
然后把消息里的操作加到里面,注意的是结构常量问题
那里面的点击是为了确定项目和子项,其实是一样的
发表于 2014-2-14 17:16:05 | 显示全部楼层
回复 9# netegg


    很需要这个,能举个例吗?大哥
发表于 2014-3-30 19:17:37 | 显示全部楼层
回复  netegg


    很需要这个,能举个例吗?大哥
txm888 发表于 2014-2-14 17:16
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

GUICreate("my form")
$lsv = GUICtrlCreateListView("id|name|age",10,10,200,100)
GUICtrlCreateListViewItem("1|Tom|23",$lsv)
GUICtrlSetBkColor(-1,"0x00FF00")
GUICtrlSetColor(-1,"0xFF0000")
GUICtrlCreateListViewItem("12|Tom2|22",$lsv)

GUISetState()

Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
发表于 2014-3-31 14:29:50 | 显示全部楼层
回复 11# damoo


    报谦,我没说清楚,谢谢
    是第三方UDF创建的控件_GUICtrlListView_Create
    另外,_GUICtrlListView控件支持某一列或单个单元格以星号显示内容吗?
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-17 02:57 , Processed in 0.079156 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表