Listview的API全集--------www.mvps.org
Public Const WC_LISTVIEW = "SysListView32"
Public Enum LVStyles
LVS_ICON = &H0
LVS_REPORT = &H1
LVS_SMALLICON = &H2
LVS_LIST = &H3
LVS_TYPEMASK = &H3
LVS_SINGLESEL = &H4
LVS_SHOWSELALWAYS = &H8
LVS_SORTASCENDING = &H10
LVS_SORTDESCENDING = &H20
LVS_SHAREIMAGELISTS = &H40
LVS_NOLABELWRAP = &H80
LVS_AUTOARRANGE = &H100
LVS_EDITLABELS = &H200
#If (WIN32_IE >= &H300) Then
LVS_OWNERDATA = &H1000
#End If
LVS_NOSCROLL = &H2000
LVS_TYPESTYLEMASK = &HFC00
LVS_ALIGNTOP = &H0
LVS_ALIGNLEFT = &H800
LVS_ALIGNMASK = &HC00
LVS_OWNERDRAWFIXED = &H400
LVS_NOCOLUMNHEADER = &H4000
LVS_NOSORTHEADER = &H8000&
End Enum ' LVStyles
' ============================================
' Messages
Public 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)
#If (WIN32_IE >= &H300) Then
LVM_GETHEADER = (LVM_FIRST + 31)
#End If
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
#If (WIN32_IE >= &H300) Then
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)
#End If ' // WIN32_IE >= &H300
#If (WIN32_IE >= &H400) Then
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
#End If ' // WIN32_IE >= &H400
#If (WIN32_IE >= &H400) Then
LVM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT
LVM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT
#End If
End Enum ' LVMessages
Public Const LV_MAX_WORKAREAS = 16
' LVM_GETIMAGELIST wParam
Public Enum LVSIL_Flags
LVSIL_NORMAL = 0
LVSIL_SMALL = 1
LVSIL_STATE = 2
End Enum
' LVM_GETNEXTITEM flags
Public Enum LVNI_Flags
LVNI_ALL = &H0
LVNI_FOCUSED = &H1
LVNI_SELECTED = &H2
LVNI_CUT = &H4
LVNI_DROPHILITED = &H8
LVNI_ABOVE = &H100
LVNI_BELOW = &H200
LVNI_TOLEFT = &H400
LVNI_TORIGHT = &H800
End Enum
' LVM_GETITEMRECT rct.Left
Public Enum LVIR_Flags
LVIR_BOUNDS = 0
LVIR_ICON = 1
LVIR_LABEL = 2
LVIR_SELECTBOUNDS = 3
End Enum
' LVM_ARRANGE wParam
Public Enum LVA_Flags
LVA_DEFAULT = &H0
LVA_ALIGNLEFT = &H1
LVA_ALIGNTOP = &H2
LVA_SNAPTOGRID = &H5
End Enum
' ============================================
' Structures and their flags
Public Type LVITEM ' was LV_ITEM
mask As LVITEM_mask
iItem As Long
iSubItem As Long
state As LVITEM_state
stateMask As Long
pszText As Long ' if String, must be pre-allocated
cchTextMax As Long
iImage As Long
lParam As Long
#If (WIN32_IE >= &H300) Then
iIndent As Long
#End If
End Type
#If (WIN32_IE >= &H300) Then
Public Const I_INDENTCALLBACK = (-1) ' iIndent, 4.70
#End If
Public Enum LVITEM_mask
LVIF_TEXT = &H1
LVIF_IMAGE = &H2
LVIF_PARAM = &H4
LVIF_STATE = &H8
#If (WIN32_IE >= &H300) Then
LVIF_INDENT = &H10
LVIF_NORECOMPUTE = &H800
#End If
LVIF_DI_SETITEM = &H1000 ' NMLVDISPINFO notification
End Enum