Listview的API全集--------www.mvps.org

thorkhan 2002-04-11 10:28:20
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
...全文
299 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ziyue 2002-04-18
  • 打赏
  • 举报
回复
写的。好
thorkhan 2002-04-11
  • 打赏
  • 举报
回复
' Returns the low 16-bit integer from a 32-bit long integer

Public Function LOWORD(dwValue As Long) As Integer
MoveMemory LOWORD, dwValue, 2
End Function

' Returns the low 16-bit integer from a 32-bit long integer

Public Function HIWORD(dwValue As Long) As Integer
MoveMemory HIWORD, ByVal VarPtr(dwValue) + 2, 2
End Function

' Combines two integers into a long integer

Public Function MAKELONG(wLow As Long, wHigh As Long) As Long
MAKELONG = wLow
MoveMemory ByVal VarPtr(MAKELONG) + 2, wHigh, 2
End Function

' Combines two integers into a long integer

Public Function MAKELPARAM(wLow As Long, wHigh As Long) As Long
MAKELPARAM = MAKELONG(wLow, wHigh)
End Function

' =============================================================================

Public Function ListView_GetBkColor(hWnd As Long) As Long
ListView_GetBkColor = SendMessage(hWnd, LVM_GETBKCOLOR, 0, 0)
End Function

Public Function ListView_SetBkColor(hWnd As Long, clrBk As Long) As Boolean
ListView_SetBkColor = SendMessage(hWnd, LVM_SETBKCOLOR, 0, ByVal clrBk)
End Function

Public Function ListView_GetImageList(hWnd As Long, iImageList As LVSIL_Flags) As Long
ListView_GetImageList = SendMessage(hWnd, LVM_GETIMAGELIST, ByVal iImageList, 0)
End Function

Public Function ListView_SetImageList(hWnd As Long, himl As Long, iImageList As Long) As Long
ListView_SetImageList = SendMessage(hWnd, LVM_SETIMAGELIST, ByVal iImageList, ByVal himl)
End Function

Public Function ListView_GetItemCount(hWnd As Long) As Long
ListView_GetItemCount = SendMessage(hWnd, LVM_GETITEMCOUNT, 0, 0)
End Function

Public Function ListView_GetItem(hWnd As Long, pitem As LVITEM) As Boolean
ListView_GetItem = SendMessage(hWnd, LVM_GETITEM, 0, pitem)
End Function

Public Function ListView_SetItem(hWnd As Long, pitem As LVITEM) As Boolean
ListView_SetItem = SendMessage(hWnd, LVM_SETITEM, 0, pitem)
End Function

Public Function ListView_InsertItem(hWnd As Long, pitem As LVITEM) As Long
ListView_InsertItem = SendMessage(hWnd, LVM_INSERTITEM, 0, pitem)
End Function

Public Function ListView_DeleteItem(hWnd As Long, i As Long) As Boolean
ListView_DeleteItem = SendMessage(hWnd, LVM_DELETEITEM, ByVal i, 0)
End Function

Public Function ListView_DeleteAllItems(hWnd As Long) As Boolean
ListView_DeleteAllItems = SendMessage(hWnd, LVM_DELETEALLITEMS, 0, 0)
End Function

Public Function ListView_GetCallbackMask(hWnd As Long) As Long ' LVStyles
ListView_GetCallbackMask = SendMessage(hWnd, LVM_GETCALLBACKMASK, 0, 0)
End Function

Public Function ListView_SetCallbackMask(hWnd As Long, mask As LVStyles) As Boolean
ListView_SetCallbackMask = SendMessage(hWnd, LVM_SETCALLBACKMASK, ByVal mask, 0)
End Function

Public Function ListView_GetNextItem(hWnd As Long, i As Long, flags As LVNI_Flags) As Long
ListView_GetNextItem = SendMessage(hWnd, LVM_GETNEXTITEM, ByVal i, ByVal MAKELPARAM(flags, 0))
End Function

Public Function ListView_FindItem(hWnd As Long, iStart, plvfi As LVFINDINFO) As Long
ListView_FindItem = SendMessage(hWnd, LVM_FINDITEM, ByVal iStart, plvfi)
End Function

Public Function ListView_GetItemRect(hWnd As Long, i As Long, prc As RECT, code As LVIR_Flags) As Boolean
prc.Left = code
ListView_GetItemRect = SendMessage(hWnd, LVM_GETITEMRECT, ByVal i, prc)
End Function

Public Function ListView_SetItemPosition(hwndLV As Long, i As Long, x As Long, y As Long) As Boolean
ListView_SetItemPosition = SendMessage(hwndLV, LVM_SETITEMPOSITION, ByVal i, ByVal MAKELPARAM(x, y))
End Function

Public Function ListView_GetItemPosition(hwndLV As Long, i As Long, ppt As POINTAPI) As Boolean
ListView_GetItemPosition = SendMessage(hwndLV, LVM_GETITEMPOSITION, ByVal i, ppt)
End Function

Public Function ListView_GetStringWidth(hwndLV As Long, psz As String) As Long
ListView_GetStringWidth = SendMessage(hwndLV, LVM_GETSTRINGWIDTH, 0, ByVal psz)
End Function

Public Function ListView_HitTest(hwndLV As Long, pinfo As LVHITTESTINFO) As Long
ListView_HitTest = SendMessage(hwndLV, LVM_HITTEST, 0, pinfo)
End Function

Public Function ListView_EnsureVisible(hwndLV As Long, i As Long, fPartialOK As Boolean) As Boolean
ListView_EnsureVisible = SendMessage(hwndLV, LVM_ENSUREVISIBLE, ByVal i, ByVal MAKELPARAM(Abs(fPartialOK), 0))
End Function

Public Function ListView_Scroll(hwndLV As Long, dx As Long, dy As Long) As Boolean
ListView_Scroll = SendMessage(hwndLV, LVM_SCROLL, ByVal dx, ByVal dy)
End Function

Public Function ListView_RedrawItems(hwndLV As Long, iFirst, iLast) As Boolean
ListView_RedrawItems = SendMessage(hwndLV, LVM_REDRAWITEMS, ByVal iFirst, ByVal iLast)
End Function

Public Function ListView_Arrange(hwndLV As Long, code As LVA_Flags) As Boolean
ListView_Arrange = SendMessage(hwndLV, LVM_ARRANGE, ByVal code, 0)
End Function

Public Function ListView_EditLabel(hwndLV As Long, i As Long) As Long
ListView_EditLabel = SendMessage(hwndLV, LVM_EDITLABEL, ByVal i, 0)
End Function

Public Function ListView_GetEditControl(hwndLV As Long) As Long
ListView_GetEditControl = SendMessage(hwndLV, LVM_GETEDITCONTROL, 0, 0)
End Function

Public Function ListView_GetColumn(hWnd As Long, iCol As Long, pcol As LVCOLUMN) As Boolean
ListView_GetColumn = SendMessage(hWnd, LVM_GETCOLUMN, ByVal iCol, pcol)
End Function

Public Function ListView_SetColumn(hWnd As Long, iCol As Long, pcol As LVCOLUMN) As Boolean
ListView_SetColumn = SendMessage(hWnd, LVM_SETCOLUMN, ByVal iCol, pcol)
End Function

Public Function ListView_InsertColumn(hWnd As Long, iCol As Long, pcol As LVCOLUMN) As Long
ListView_InsertColumn = SendMessage(hWnd, LVM_INSERTCOLUMN, ByVal iCol, pcol)
End Function

Public Function ListView_DeleteColumn(hWnd As Long, iCol As Long) As Boolean
ListView_DeleteColumn = SendMessage(hWnd, LVM_DELETECOLUMN, ByVal iCol, 0)
End Function

Public Function ListView_GetColumnWidth(hWnd As Long, iCol As Long) As Long
ListView_GetColumnWidth = SendMessage(hWnd, LVM_GETCOLUMNWIDTH, ByVal iCol, 0)
End Function

Public Function ListView_SetColumnWidth(hWnd As Long, iCol As Long, cx As Long) As Boolean
ListView_SetColumnWidth = SendMessage(hWnd, LVM_SETCOLUMNWIDTH, ByVal iCol, ByVal MAKELPARAM(cx, 0))
End Function

#If (WIN32_IE >= &H300) Then

Public Function ListView_GetHeader(hWnd As Long) As Long
ListView_GetHeader = SendMessage(hWnd, LVM_GETHEADER, 0, 0)
End Function
'
#End If
thorkhan 2002-04-11
  • 打赏
  • 举报
回复
'// key flags stored in uKeyFlags
Public Enum NMITEMACTIVATE_uKeyFlags
LVKF_ALT = &H1
LVKF_CONTROL = &H2
LVKF_SHIFT = &H4
End Enum

#End If ' // WIN32_IE >= &H400

#If (WIN32_IE >= &H300) Then

'Public Type NMLVCUSTOMDRAW
' nmcd As NMCUSTOMDRAW
' clrText As Long
' clrTextBk As Long
'#If (WIN32_IE >= &H400) Then
' iSubItem As Long
'#End If ' // WIN32_IE >= &H400
'End Type

Public Type NMLVCACHEHINT
hdr As NMHDR
iFrom As Long
iTo As Long
End Type

Public Type NMLVFINDITEM ' was NM_LVFINDITEM
hdr As NMHDR
iStart As Long
lvfi As LVFINDINFO
End Type

Public Type NMODSTATECHANGE ' was NM_ODSTATECHANGE
hdr As NMHDR
iFrom As Long
iTo As Long
uNewState As Long
uOldState As Long
End Type

#End If ' // WIN32_IE >= &H300

Public Type NMLVDISPINFO ' was LV_DISPINFO
hdr As NMHDR
item As LVITEM
End Type

Public Type NMLVKEYDOWN ' was LV_KEYDOWN
hdr As NMHDR
wVKey As Integer ' can't be KeyCodeConstants, enums are Longs!
flags As Long ' Always zero.
End Type

#If (WIN32_IE >= &H400) Then

Public Type NMLVGETINFOTIP
hdr As NMHDR
dwFlags As Long
pszText As Long ' if String, must be pre-allocated
cchTextMax As Long
iItem As Long
iSubItem As Long
lParam As Long
End Type

' // NMLVGETINFOTIPA.dwFlag values ("A" ?)
Public Const LVGIT_UNFOLDED = &H1

#End If ' // WIN32_IE >= &H400
thorkhan 2002-04-11
  • 打赏
  • 举报
回复
Public 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 Enum

Public Type LVFINDINFO ' was LV_FINDINFO
flags As LVFINDINFO_flags
psz As Long ' if String, must be pre-allocated
lParam As Long
pt As POINTAPI
vkDirection As Long
End Type

Public Enum LVFINDINFO_flags
LVFI_PARAM = &H1
LVFI_STRING = &H2
LVFI_PARTIAL = &H8
LVFI_WRAP = &H20
LVFI_NEARESTXY = &H40
End Enum

Public Type LVHITTESTINFO ' was LV_HITTESTINFO
pt As POINTAPI
flags As LVHITTESTINFO_flags
iItem As Long
#If (WIN32_IE >= &H300) Then
iSubItem As Long ' this is was NOT in win95. valid only for LVM_SUBITEMHITTEST
#End If
End Type

Public Enum LVHITTESTINFO_flags
LVHT_NOWHERE = &H1 ' in LV client area, but not over item
LVHT_ONITEMICON = &H2
LVHT_ONITEMLABEL = &H4
LVHT_ONITEMSTATEICON = &H8
LVHT_ONITEM = (LVHT_ONITEMICON Or LVHT_ONITEMLABEL Or LVHT_ONITEMSTATEICON)

' outside the LV's client area
LVHT_ABOVE = &H8
LVHT_BELOW = &H10
LVHT_TORIGHT = &H20
LVHT_TOLEFT = &H40
End Enum

Public Type LVCOLUMN ' was LV_COLUMN
mask As LVCOLUMN_mask
fmt As LVCOLUMN_fmt
cx As Long
pszText As Long ' if String, must be pre-allocated
cchTextMax As Long
iSubItem As Long
#If (WIN32_IE >= &H300) Then
iImage As Long
iOrder As Long
#End If
End Type

Public Enum LVCOLUMN_mask
LVCF_FMT = &H1
LVCF_WIDTH = &H2
LVCF_TEXT = &H4
LVCF_SUBITEM = &H8
#If (WIN32_IE >= &H300) Then
LVCF_IMAGE = &H10
LVCF_ORDER = &H20
#End If
End Enum

Public Enum LVCOLUMN_fmt
LVCFMT_LEFT = &H0
LVCFMT_RIGHT = &H1
LVCFMT_CENTER = &H2
LVCFMT_JUSTIFYMASK = &H3
#If (WIN32_IE >= &H300) Then
LVCFMT_IMAGE = &H800
LVCFMT_BITMAP_ON_RIGHT = &H1000
LVCFMT_COL_HAS_IMAGES = &H8000&
#End If
End Enum

Public Enum LVM_SETCOLUMNWIDTH_lParam
LVSCW_AUTOSIZE = -1
LVSCW_AUTOSIZE_USEHEADER = -2
End Enum

#If (WIN32_IE >= &H300) Then
' // these flags only apply to LVS_OWNERDATA listviews in report or list mode
Public Enum LVM_SETITEMCOUNT_lParam
LVSICF_NOINVALIDATEALL = &H1
LVSICF_NOSCROLL = &H2
End Enum
#End If

#If (WIN32_IE >= &H300) Then
Public Enum LVM_SETEXTENDEDLISTVIEWSTYLE_lParam
LVS_EX_GRIDLINES = &H1
LVS_EX_SUBITEMIMAGES = &H2
LVS_EX_CHECKBOXES = &H4
LVS_EX_TRACKSELECT = &H8
LVS_EX_HEADERDRAGDROP = &H10
LVS_EX_FULLROWSELECT = &H20 ' // applies to report mode only
LVS_EX_ONECLICKACTIVATE = &H40
LVS_EX_TWOCLICKACTIVATE = &H80
#If (WIN32_IE >= &H400) Then
LVS_EX_FLATSB = &H100
LVS_EX_REGIONAL = &H200
LVS_EX_INFOTIP = &H400 ' listview does InfoTips for you
LVS_EX_UNDERLINEHOT = &H800
LVS_EX_UNDERLINECOLD = &H1000
LVS_EX_MULTIWORKAREAS = &H2000
#End If ' // WIN32_IE >= &H400
End Enum
#End If ' // WIN32_IE >= &H300

#If (WIN32_IE >= &H400) Then
Public Type LVBKIMAGE
ulFlags As LVBKIMAGE_ulFlags
hbm As Long
pszImage As Long ' if String, must be pre-allocated
cchImageMax As Long
xOffsetPercent As Long
yOffsetPercent As Long
End Type

Public Enum LVBKIMAGE_ulFlags
LVBKIF_SOURCE_NONE = &H0
LVBKIF_SOURCE_HBITMAP = &H1
LVBKIF_SOURCE_URL = &H2
LVBKIF_SOURCE_MASK = &H3
LVBKIF_STYLE_NORMAL = &H0
LVBKIF_STYLE_TILE = &H10
LVBKIF_STYLE_MASK = &H10
End Enum
#End If ' // WIN32_IE >= &H400

' ============================================
' Notifications

Public Enum LVNotifications
LVN_FIRST = -100& ' &HFFFFFF9C ' (0U-100U)
LVN_LAST = -199& ' &HFFFFFF39 ' (0U-199U)
' lParam points to:
LVN_ITEMCHANGING = (LVN_FIRST - 0) ' NMLISTVIEW, ?, rtn T/F
LVN_ITEMCHANGED = (LVN_FIRST - 1) ' NMLISTVIEW, ?
LVN_INSERTITEM = (LVN_FIRST - 2) ' NMLISTVIEW, iItem
LVN_DELETEITEM = (LVN_FIRST - 3) ' NMLISTVIEW, iItem
LVN_DELETEALLITEMS = (LVN_FIRST - 4) ' NMLISTVIEW, iItem = -1, rtn T/F

LVN_COLUMNCLICK = (LVN_FIRST - 8) ' NMLISTVIEW, iItem = -1, iSubItem = column
LVN_BEGINDRAG = (LVN_FIRST - 9) ' NMLISTVIEW, iItem
LVN_BEGINRDRAG = (LVN_FIRST - 11) ' NMLISTVIEW, iItem

#If (WIN32_IE >= &H300) Then
LVN_ODCACHEHINT = (LVN_FIRST - 13) ' NMLVCACHEHINT
LVN_ITEMACTIVATE = (LVN_FIRST - 14) ' v4.70 = NMHDR, v4.71 = NMITEMACTIVATE
LVN_ODSTATECHANGED = (LVN_FIRST - 15) ' NMLVODSTATECHANGE, rtn T/F
#End If ' // WIN32_IE >= &H300

#If (WIN32_IE >= &H400) Then
LVN_HOTTRACK = (LVN_FIRST - 21) ' NMLISTVIEW, see docs, rtn T/F
#End If

#If UNICODE Then
LVN_BEGINLABELEDIT = (LVN_FIRST - 75)
LVN_ENDLABELEDIT = (LVN_FIRST - 76)
LVN_GETDISPINFO = (LVN_FIRST - 77)
LVN_SETDISPINFO = (LVN_FIRST - 78)

#If (WIN32_IE >= &H300) Then
LVN_ODFINDITEM = (LVN_FIRST - 79) ' NMLVFINDITEM
#End If ' (WIN32_IE >= &H300)

#If (WIN32_IE >= &H400) Then
LVN_GETINFOTIP = (LVN_FIRST - 58) ' NMLVGETINFOTIP
#End If ' (WIN32_IE >= &H400)

#Else
LVN_BEGINLABELEDIT = (LVN_FIRST - 5) ' NMLVDISPINFO, iItem, rtn T/F
LVN_ENDLABELEDIT = (LVN_FIRST - 6) ' NMLVDISPINFO, see docs
LVN_GETDISPINFO = (LVN_FIRST - 50) ' NMLVDISPINFO, see docs
LVN_SETDISPINFO = (LVN_FIRST - 51) ' NMLVDISPINFO, see docs

#If (WIN32_IE >= &H300) Then
LVN_ODFINDITEM = (LVN_FIRST - 52) ' NMLVFINDITEM
#End If ' (WIN32_IE >= &H300)

#If (WIN32_IE >= &H400) Then
LVN_GETINFOTIP = (LVN_FIRST - 57) ' NMLVGETINFOTIP
#End If ' (WIN32_IE >= &H400)

#End If ' UNICODE

LVN_KEYDOWN = (LVN_FIRST - 55) ' NMLVKEYDOWN

#If (WIN32_IE >= &H300) Then
LVN_MARQUEEBEGIN = (LVN_FIRST - 56) ' NMLISTVIEW, rtn T/F
#End If

End Enum ' LVNotifications

Public Type NMLISTVIEW ' was NM_LISTVIEW
hdr As NMHDR
iItem As Long
iSubItem As Long
uNewState As LVITEM_state
uOldState As LVITEM_state
uChanged As LVITEM_mask
ptAction As POINTAPI
lParam As Long
End Type

#If (WIN32_IE >= &H400) Then

'// NMITEMACTIVATE is used instead of NMLISTVIEW in IE >= 0x400
'// therefore all the fields are the same except for extra uKeyFlags
'// they are used to store key flags at the time of the single click with
'// delayed activation - because by the time the timer goes off a user may
'// not hold the keys (shift, ctrl) any more
Public Type NMITEMACTIVATE
hdr As NMHDR
iItem As Long
iSubItem As Long
uNewState As Long
uOldState As Long
uChanged As Long
ptAction As POINTAPI
lParam As Long
uKeyFlags As Long
End Type

1,486

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧