Public Function ListView_SetItemState(hwndLV As Long, i As Long, state As LVITEM_state, mask As LVITEM_state) As Boolean
  Dim lvi As LVITEM
  lvi.state = LVIS_SELECTED
  lvi.stateMask = mask
  ListView_SetItemState = SendMessage(hwndLV, LVM_SETITEMSTATE, ByVal 3, lvi)
End Function把里面的常数值 和 自定义变量 提供一下
谢谢

解决方案 »

  1.   

    http://expert.csdn.net/Expert/topic/2366/2366715.xml?temp=.7017786里 goodname008(卢培培,LPP Software) 不是已经贴了吗
      

  2.   

    这些东东都可在vc的头文件里找到的
    也可下载http://www.mvps.org/btmtz/enumdeskvb/edeskvb2.zip看看Private Const LVM_FIRST = &H1000
    Private Const LVM_SETITEMSTATE = (LVM_FIRST + 43)Private Enum LVITEM_mask
        LVIF_TEXT = &H1
        LVIF_IMAGE = &H2
        LVIF_PARAM = &H4
        LVIF_STATE = &H8    LVIF_INDENT = &H10
        LVIF_NORECOMPUTE = &H800    LVIF_DI_SETITEM = &H1000
    End Enum
    Private Type LVITEM
        mask As LVITEM_mask
        iItem As Long
        iSubItem As Long
        state As LVITEM_state
        stateMask As Long
        pszText As Long
        cchTextMax As Long
        iImage As Long
        lParam As Long
        iIndent As LongEnd Type
    Private Enum LVITEM_state
        LVIS_FOCUSED = &H1
        LVIS_SELECTED = &H2
        LVIS_CUT = &H4
        LVIS_DROPHILITED = &H8
        LVIS_ACTIVATING = &H20
        
        LVIS_OVERLAYMASK = &HF00
        LVIS_STATEIMAGEMASK = &HF000
    End EnumPrivate Enum LVMessages
      LVM_FIRST = &H1000  LVM_GETBKCOLOR = (LVM_FIRST + 0)
      LVM_SETBKCOLOR = (LVM_FIRST + 1)
      LVM_GETIMAGELIST = (LVM_FIRST + 2)
     
      LVM_SETIMAGELIST = (LVM_FIRST + 3)
      LVM_GETITEMCOUNT = (LVM_FIRST + 4)
     
    #If UNICODE Then
      LVM_GETITEM = (LVM_FIRST + 75)
      LVM_SETITEM = (LVM_FIRST + 76)
      LVM_INSERTITEM = (LVM_FIRST + 77)
    #Else
      LVM_GETITEM = (LVM_FIRST + 5)
      LVM_SETITEM = (LVM_FIRST + 6)
      LVM_INSERTITEM = (LVM_FIRST + 7)
    #End If
     
      LVM_DELETEITEM = (LVM_FIRST + 8)
      LVM_DELETEALLITEMS = (LVM_FIRST + 9)  LVM_GETCALLBACKMASK = (LVM_FIRST + 10)
      LVM_SETCALLBACKMASK = (LVM_FIRST + 11)
      
      LVM_GETNEXTITEM = (LVM_FIRST + 12)
     
    #If UNICODE Then
      LVM_FINDITEM = (LVM_FIRST + 83)
    #Else
      LVM_FINDITEM = (LVM_FIRST + 13)
    #End If
     
      LVM_GETITEMRECT = (LVM_FIRST + 14)
      LVM_SETITEMPOSITION = (LVM_FIRST + 15)
      LVM_GETITEMPOSITION = (LVM_FIRST + 16)
     
    #If UNICODE Then
      LVM_GETSTRINGWIDTH = (LVM_FIRST + 87)
    #Else
      LVM_GETSTRINGWIDTH = (LVM_FIRST + 17)
    #End If
     
      LVM_HITTEST = (LVM_FIRST + 18)
      LVM_ENSUREVISIBLE = (LVM_FIRST + 19)
      LVM_SCROLL = (LVM_FIRST + 20)
      LVM_REDRAWITEMS = (LVM_FIRST + 21)
      LVM_ARRANGE = (LVM_FIRST + 22)
      
    #If UNICODE Then
      LVM_EDITLABEL = (LVM_FIRST + 118)
    #Else
      LVM_EDITLABEL = (LVM_FIRST + 23)
    #End If
     
      LVM_GETEDITCONTROL = (LVM_FIRST + 24)
     
    #If UNICODE Then
      LVM_GETCOLUMN = (LVM_FIRST + 95)
      LVM_SETCOLUMN = (LVM_FIRST + 96)
      LVM_INSERTCOLUMN = (LVM_FIRST + 97)
    #Else
      LVM_GETCOLUMN = (LVM_FIRST + 25)
      LVM_SETCOLUMN = (LVM_FIRST + 26)
      LVM_INSERTCOLUMN = (LVM_FIRST + 27)
    #End If
     
      LVM_DELETECOLUMN = (LVM_FIRST + 28)
      LVM_GETCOLUMNWIDTH = (LVM_FIRST + 29)
     
      LVM_SETCOLUMNWIDTH = (LVM_FIRST + 30)
       LVM_GETHEADER = (LVM_FIRST + 31)  
      LVM_CREATEDRAGIMAGE = (LVM_FIRST + 33)
      LVM_GETVIEWRECT = (LVM_FIRST + 34)
      LVM_GETTEXTCOLOR = (LVM_FIRST + 35)
      LVM_SETTEXTCOLOR = (LVM_FIRST + 36)
      LVM_GETTEXTBKCOLOR = (LVM_FIRST + 37)
      LVM_SETTEXTBKCOLOR = (LVM_FIRST + 38)
      LVM_GETTOPINDEX = (LVM_FIRST + 39)
      LVM_GETCOUNTPERPAGE = (LVM_FIRST + 40)
      LVM_GETORIGIN = (LVM_FIRST + 41)
      LVM_UPDATE = (LVM_FIRST + 42)
      LVM_SETITEMSTATE = (LVM_FIRST + 43)
      LVM_GETITEMSTATE = (LVM_FIRST + 44)
      
    #If UNICODE Then
      LVM_GETITEMTEXT = (LVM_FIRST + 115)
      LVM_SETITEMTEXT = (LVM_FIRST + 116)
    #Else
      LVM_GETITEMTEXT = (LVM_FIRST + 45)
      LVM_SETITEMTEXT = (LVM_FIRST + 46)
    #End If
     
      LVM_SETITEMCOUNT = (LVM_FIRST + 47)
     
      LVM_SORTITEMS = (LVM_FIRST + 48)
      LVM_SETITEMPOSITION32 = (LVM_FIRST + 49)
      LVM_GETSELECTEDCOUNT = (LVM_FIRST + 50)
      LVM_GETITEMSPACING = (LVM_FIRST + 51)
      
    #If UNICODE Then
      LVM_GETISEARCHSTRING = (LVM_FIRST + 117)
    #Else
      LVM_GETISEARCHSTRING = (LVM_FIRST + 52)
    #End If
       LVM_SETICONSPACING = (LVM_FIRST + 53)
      LVM_SETEXTENDEDLISTVIEWSTYLE = (LVM_FIRST + 54)
      LVM_GETEXTENDEDLISTVIEWSTYLE = (LVM_FIRST + 55)
     
      LVM_GETSUBITEMRECT = (LVM_FIRST + 56)
      LVM_SUBITEMHITTEST = (LVM_FIRST + 57)
      LVM_SETCOLUMNORDERARRAY = (LVM_FIRST + 58)
      LVM_GETCOLUMNORDERARRAY = (LVM_FIRST + 59)
      LVM_SETHOTITEM = (LVM_FIRST + 60)
      LVM_GETHOTITEM = (LVM_FIRST + 61)
      LVM_SETHOTCURSOR = (LVM_FIRST + 62)
      LVM_GETHOTCURSOR = (LVM_FIRST + 63)
      LVM_APPROXIMATEVIEWRECT = (LVM_FIRST + 64)    LVM_SETWORKAREAS = (LVM_FIRST + 65)
      LVM_GETWORKAREAS = (LVM_FIRST + 70)
      LVM_GETNUMBEROFWORKAREAS = (LVM_FIRST + 73)
      LVM_GETSELECTIONMARK = (LVM_FIRST + 66)
      LVM_SETSELECTIONMARK = (LVM_FIRST + 67)
      LVM_SETHOVERTIME = (LVM_FIRST + 71)
      LVM_GETHOVERTIME = (LVM_FIRST + 72)
      LVM_SETTOOLTIPS = (LVM_FIRST + 74)
      LVM_GETTOOLTIPS = (LVM_FIRST + 78)#If UNICODE Then
      LVM_SETBKIMAGE = (LVM_FIRST + 138)
      LVM_GETBKIMAGE = (LVM_FIRST + 139)
    #Else
      LVM_SETBKIMAGE = (LVM_FIRST + 68)
      LVM_GETBKIMAGE = (LVM_FIRST + 69)
    #End If
        LVM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT
        LVM_GETUNICODEFORMAT = CCM_GETUNICODEFORMATEnd Enum
      

  3.   

    可是有一个问题:
    虽然用这个函数 可以选中某个item
    但是 我 Print ListView1.SelectedItem.Key
    以后发现 这个key 的值都不变的 这是为什么
      

  4.   

    我的源代码是这样的 请帮我修改一下Private Sub Command4_Click()
     ListView_SetItemState ListView1.hwnd, Val(Text1.Text), LVIS_SELECTED, LVIS_SELECTED
     ListView1.SetFocus
     End Sub
    -----------------------------------------------------------------------------
     
     Function ListView_SetItemState(hwndLV As Long, i As Long, state As LVITEM_state, mask As LVITEM_state) As Boolean
      Dim lvi As LVITEM
      lvi.state = LVIS_SELECTED
      lvi.stateMask = mask
      
      
      ListView_SetItemState = SendMessage(hwndLV, LVM_SETITEMSTATE, ByVal i, lvi)
    End Function