blue_dvd 发表于 2016-11-24 11:19:47

回复 13# kk_lee69

kk_lee69大哥,我贴出代码了,你看看,写入listview的方式不同,代码写底色确不同效果!

blue_dvd 发表于 2016-11-24 11:24:52

回复 14# chzj589
我主要是想用
_GUICtrlListView_AddArray($ListView1, $aShowdata)
快速列表,但用了这个函数,写行底色确不行了!

chzj589 发表于 2016-11-24 13:28:02

本帖最后由 chzj589 于 2016-11-24 13:33 编辑

回复 15# blue_dvd

写这样的代码要做什么?
为何不将自己写的发上来?

kk_lee69 发表于 2016-11-24 14:02:29

回复 17# blue_dvd


    http://www.autoitx.com/forum.php?mod=viewthread&tid=47377&highlight=listview

這裡不就是完全是你需要的??

kk_lee69 发表于 2016-11-24 14:04:19

回复 16# blue_dvd


或者你不要用 _GUICtrlListView_AddArray

用原本的方法可以解決 閃的問題....

#include <GUIConstantsEx.au3>
#include <ListViewConstants.au3>
#include <WindowsConstants.au3>
#include <GuiListView.au3>
#include <ColorConstants.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, "Item1",100)
_GUICtrlListView_AddColumn($ListView1, "nSubItem1", 100)
_GUICtrlListView_AddColumn($ListView1, "nSubItem2", 100)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

Local $GUI, $hImage, $iITEM_COUNT =1000

Local $sSomeString = ""

Local $aBoy[$iITEM_COUNT]

For $i = 0 To $iITEM_COUNT - 1;初始化??

      $aBoy[$i] = "??" & $i

      $aBoy[$i] = "爸爸" & $i

      $aBoy[$i] = "儿子" & $i

Next

Local $aShowdata = $aBoy

_GUICtrlListView_BeginUpdate($ListView1)
for $i=0 toUBound($aShowdata ,1)-1

         $t_a=$aShowdata[$i]
      For $j=1 ToUBound($aShowdata,2) - 1
            $t_a=$t_a&"|"&$aShowdata[$i][$j]
      Next
       ;MsgBox(0,"提醒", $t_a)

      GUICtrlCreateListViewItem($t_a,$ListView1)

Next

;?置列?
         For $i = 0 To UBound($aShowdata ,2) - 1
                _GUICtrlListView_SetColumnWidth($ListView1, $i, $LVSCW_AUTOSIZE) ;?置列??不懂
         Next

   local $ii=0
   ;?置行?隔?色
         For $i = 0 To UBound($aShowdata,1) - 1

                  ifmod($i,2)=0 Then
                     ; $ii= _GUICtrlListView_SetItemSelected($ListView1, $i)
                     ; $a = ControlListView($form1, "", $ListView1, "GetSelected", $ii)
                                       ; ConsoleWrite($a&@CRLF)
            GUICtrlSetBkColor(_GUICtrlListView_GetItemParam($ListView1, $i), $COLOR_BLUE) ;?色
                                        ConsoleWrite(_GUICtrlListView_GetItemParam($ListView1, $i)&@CRLF)
               EndIf

      Next

_GUICtrlListView_EndUpdate($ListView1)


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

      EndSwitch
WEnd

kk_lee69 发表于 2016-11-24 14:32:25

回复 17# blue_dvd

簡單做個結論

使用 _GUICtrlListView_AddArray 出來的東西因為結構不一樣,因此有很多事無法使用的 譬如
你想設定寬度_GUICtrlListView_SetColumnWidth 會失效
想設定背景 GUICtrlSetBkColor會失效

所以你得 註冊函數 然後 自己手動處理...... WM_NOTIFY
不這樣做 是無法達到你的要求..................

不然就得 採用傳統的方式.....

blue_dvd 发表于 2016-11-24 21:47:42

回复 21# kk_lee69

谢谢,终于搞定了!
页: 1 [2]
查看完整版本: 如何获取Listview第2行控件行标识?【已解决】