Option Explicit
'请增加一个 5.0下的Listview1 增加三个Check 分别为Check1 Check2 Check3
Private Declare Function SendMessageLong Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
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 LVS_EX_GRIDLINES As Long = &H1&
Private Const LVS_EX_CHECKBOXES As Long = &H4&
Private Const LVS_EX_FULLROWSELECT As Long = &H20&
Dim i As Long
Private Sub Check1_Click()
If Check1.Value Then
SetExtendedStyle LVS_EX_FULLROWSELECT, 0
Else
SetExtendedStyle 0, LVS_EX_FULLROWSELECT
End If
End Sub
Private Sub Check2_Click()
If Check2.Value Then
SetExtendedStyle LVS_EX_GRIDLINES, 0
Else
SetExtendedStyle 0, LVS_EX_GRIDLINES
End If
End Sub
Private Sub Check3_Click()
If Check3.Value Then
SetExtendedStyle LVS_EX_CHECKBOXES, 0
Else
SetExtendedStyle 0, LVS_EX_CHECKBOXES
End If
End Sub
Private Sub Form_Load()
Check1.Caption = "全行选择"
Check2.Caption = "网格线"
Check3.Caption = "复选框"
ListView1.ColumnHeaders.Add , , "Column1"
ListView1.ColumnHeaders.Add , , "Column2"
ListView1.ColumnHeaders.Add , , "Column3"
ListView1.ColumnHeaders.Add , , "Column4"
Dim List1 As ListItem
For i = 1 To 10
Set List1 = ListView1.ListItems.Add(, , "Data" & i)
List1.SubItems(1) = "Row" & i
List1.SubItems(2) = "Row" & i
List1.SubItems(3) = "Row" & i
Next
ListView1.View = lvwReport
End Sub
Private Sub SetExtendedStyle(ByVal lStyle As Long, ByVal lStyleNot As Long)
Dim lNewStyle As Long
lNewStyle = SendMessageLong(ListView1.hwnd, LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0)
lNewStyle = lNewStyle And Not lStyleNot
lNewStyle = lNewStyle Or lStyle
SendMessageLong ListView1.hwnd, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, lNewStyle
End Sub