找回密码
 加入
搜索
查看: 7814|回复: 30

[AU3基础] [已解决]如何讓 listview 裡面偵測到 AAA 就讓所有 AAA 顯示為紅色?

 火.. [复制链接]
发表于 2016-10-14 09:30:26 | 显示全部楼层 |阅读模式
本帖最后由 ipmitool 于 2016-10-16 10:41 编辑

如何讓 listview 裡面偵測到 AAA 就讓所有 AAA 顯示為紅色?



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2016-10-14 13:14:14 | 显示全部楼层
发表于 2016-10-14 13:54:04 | 显示全部楼层
回复 1# ipmitool

是这样就比较简单




如果要显示Listview单例就复杂多了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2016-10-14 15:27:44 | 显示全部楼层
回复 3# chzj589

可能是要这种效果





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×

评分

参与人数 1金钱 +40 收起 理由
ipmitool + 40 拜託您樓, 可以跟您要code嗎? 想要全部show ...

查看全部评分

 楼主| 发表于 2016-10-14 17:07:09 | 显示全部楼层
回复 4# chzj589


    您好, 我想要全部show出來, 然後AAA是紅色這樣可以嗎? 可以跟您要code嗎? 謝謝喔~
发表于 2016-10-14 20:01:03 | 显示全部楼层
回复 5# ipmitool
只能这种效果







详见代码:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×

评分

参与人数 1金钱 +10 收起 理由
heroxianf + 10 你上面的例子呢~

查看全部评分

发表于 2016-10-15 10:01:55 | 显示全部楼层
回复 4# chzj589

哪个例子
 楼主| 发表于 2016-10-15 10:30:15 | 显示全部楼层
回复 7# chzj589


    要怎麼改才能指定關鍵字為紅色就好了啊……好難啊…
发表于 2016-10-15 11:08:42 | 显示全部楼层
回复 8# ipmitool

我知道 你要的 ................. 你不想要全部同一行  都變色  你只需要有問題的變色對吧

解決方法 就是我上次給你的虛擬 LISTVIEW 可以做到
发表于 2016-10-15 11:14:16 | 显示全部楼层
本帖最后由 chzj589 于 2016-10-15 11:18 编辑

回复 8# ipmitool

你要的是4楼的第2张图?不需背景?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2016-10-15 12:14:24 | 显示全部楼层
回复 8# ipmitool

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2016-10-15 13:33:17 | 显示全部楼层
回复 11# kk_lee69
我只能让整列改变颜色
兄弟,这是如何实现的。请赐教!
发表于 2016-10-15 17:31:41 | 显示全部楼层
本帖最后由 kk_lee69 于 2016-10-15 17:35 编辑

回复 12# chzj589

你的方法跟我的方法不一樣 但是觀念是一樣的
我下午  為了舉這個例子  才解決出來

重點邏輯是  你必須要讓  整行 先變一次 顏色 所變的顏色 是 有變等於沒變
DllStructSetData($tCustDraw, 'clrTextBk',0xFFFFFF);BGR格式顏色值 背景(等於無) 設置這個 可讓顏色恢復正常
DllStructSetData($tCustDraw, 'clrText'  ,0x000000);BGR格式顏色值 文字(等於黑) 設置這個 可讓顏色恢復正常
然後 你在 判斷  要變顏色的時候 才不會整行受到影響
之前的狀況是  通常 你在某個位置變了顏色  後面 整個受到影響
要在前面加哪兩句 才不會受到影響
        If $cSub = $nCLID Then         ;設置首列, 即專案
        $iColor = RGB2BGR(0xFF0000)
        ;_WinAPI_SelectObject($hDC, $Font1)
        DllStructSetData($tCustDraw, "clrText", $iColor)
        DllStructSetData($tCustDraw, "clrTextBk", RGB2BGR(0xFFFF80))  ;設置文本背景色
EndIf


位置放哪 你要在琢磨一下    因為你的方法跟我的不一樣  所以我無法告訴你應該放哪個位置
但是我覺得邏輯是這樣的  
等同  你變了顏色後 應該要再把他還原回來
发表于 2016-10-15 19:44:50 | 显示全部楼层
回复 13# kk_lee69
谢谢!我再琢磨琢磨。
子项目行可以设置不同颜色。
列还不能设置不同颜色
发表于 2016-10-15 21:17:21 | 显示全部楼层
本帖最后由 tubaba 于 2016-10-15 21:19 编辑

回复 14# chzj589
                                Case $NM_CUSTOMDRAW
                                        If Not _GUICtrlListView_GetViewDetails($hWndFrom) Then Return $GUI_RUNDEFMSG
                                        Local $tCustDraw = DllStructCreate('hwnd hwndFrom;int idFrom;int code;dword DrawStage;hwnd hdc;long rect[4]' & _
                                                        ';dword ItemSpec;int ItemState;dword Itemlparam;dword clrText;dword clrTextBk;int SubItem; dword ItemType' & _
                                                        ';dword clrFace;int IconEffect;int IconPhase;int PartID;int StateID;long rectText[4];int Align', $ilParam)
                                        Local $iDrawStage, $iItem, $iSubItem, $hDC, $iColor
                                        $iDrawStage = DllStructGetData($tCustDraw, 'DrawStage')
                                        If $iDrawStage = $CDDS_PREPAINT Then Return $CDRF_NOTIFYITEMDRAW ;request custom drawing of items
                                        If $iDrawStage = $CDDS_ITEMPREPAINT Then Return $CDRF_NOTIFYSUBITEMDRAW ;request drawing each cell separately
                                        If Not BitAND($iDrawStage, $CDDS_SUBITEM) Then Return $CDRF_DODEFAULT
                                        $iItem = DllStructGetData($tCustDraw, 'ItemSpec')
                                        $iSubItem = DllStructGetData($tCustDraw, 'SubItem')
                                        If StringRegExp($RelativeEncryptCol, '(?:\A|\D)(' & $iSubItem & ')(?:\D|\z)') Then
                                                Local $iColor = RGB2BGR(0x0000FF)
                                        Else
                                                Local $iColor = RGB2BGR(0x000000)
                                        EndIf
                                        DllStructSetData($tCustDraw, 'clrText', $iColor)
                                        Return $CDRF_NEWFONT
$iItem = DllStructGetData($tCustDraw, 'ItemSpec')
                                        $iSubItem = DllStructGetData($tCustDraw, 'SubItem')
这两个等同于listview某项位置,如果使用虚拟列表,在array中$iItem是第一维,$iSubItem是第二维,搜索array,只要附合要求就变色.应该可以一次完成,设置结构中的 clrTextBk可以变更背景色
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-4-19 20:25 , Processed in 0.089289 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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