本帖最后由 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
位置放哪 你要在琢磨一下 因為你的方法跟我的不一樣 所以我無法告訴你應該放哪個位置
但是我覺得邏輯是這樣的
等同 你變了顏色後 應該要再把他還原回來 |