listview1选置为可多选,共有1000多项条目。比如我现在选中了5项,不想通过循环语句查看每项的selected属性来访问这5项。我采用了下面的方法,可不知道哪个环节出了问题?Public Declare Function SendLongMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Public Const LVM_FIRST = &H1000
Public Const LVM_GETNEXTITEM = (LVM_FIRST + 12)
Public Const LVM_GETSELECTEDCOUNT = (LVM_FIRST + 50)
Public Const LVNI_SELECTED = &H2
Dim lvSelected As Long, lvThisItem As Long'下面这句正常,返回lvSelected = 5
lvSelected = SendLongMessage(ListView1.hWnd, LVM_GETSELECTEDCOUNT, 0, 0)
'下面这句,本意是想得到第一条选中的index,可返回值始终是-1,查msdn知failure才会返回-1
lvThisItem = SendLongMessage(ListView1.hWnd, LVM_GETNEXTITEM, -1, LVNI_SELECTED)