我找到了一段代码,可以根据列中项目的最长字符串来调整ListViews列的大小,但我想修改它,使其也考虑列名的长度来进行调整。我有几列,其中最长的字符串就是列名本身。
我已经在谷歌上搜索了很久,但我真的不理解这里使用的API。
对这个问题的扩展还包括,
声明:
我已经在谷歌上搜索了很久,但我真的不理解这里使用的API。
对这个问题的扩展还包括,
LVM_FIRST
在这里做什么,我在搜索中似乎找不到任何信息。声明:
Private Declare Function SendMessage Lib "user32" Alias _
"SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, lParam As Any) As Long
Private Const LVM_FIRST = &H1000
主题:
Public Sub LV_AutoSizeColumn(LV As ListView, Optional Column _
As ColumnHeader = Nothing)
Dim C As ColumnHeader
If Column Is Nothing Then
For Each C In LV.ColumnHeaders
SendMessage LV.hWnd, LVM_FIRST + 30, C.Index - 1, -1
Next
Else
SendMessage LV.hWnd, LVM_FIRST + 30, Column.Index - 1, -1
End If
LV.Refresh
End Sub
SendMessage LV.hWnd,LVM_FIRST + 30,C.Index - 1,ByVal -2
替换您现有的SendMessage
。 - Alex K.