那位达人帮忙把下列重复的模块代码帮忙精简下 也就是Form1.ListView(1-3)这段Public Sub ShowHeaderIcon1(colNo As Long, imgIconNo As Long, showImage As Long)
Dim hHeader    As Long
Dim HD    As HD_ITEM
hHeader = SendMessage(Form1.ListView1.hWnd, LVM_GETHEADER, 0, ByVal 0)
With HD
.mask = HDI_IMAGE Or HDI_FORMAT
.pszText = Form1.ListView1.ColumnHeaders(colNo + 1).Text
If showImage Then
.fmt = HDF_STRING Or HDF_IMAGE Or HDF_BITMAP_ON_RIGHT
.iImage = imgIconNo
Else
.fmt = HDF_STRING
End If
End With
Call SendMessage(hHeader, HDM_SETITEM, colNo, HD)
End SubPublic Sub ShowHeaderIcon2(colNo As Long, imgIconNo As Long, showImage As Long)
Dim hHeader    As Long
Dim HD    As HD_ITEM
hHeader = SendMessage(Form1.ListView2.hWnd, LVM_GETHEADER, 0, ByVal 0)
With HD
.mask = HDI_IMAGE Or HDI_FORMAT
.pszText = Form1.ListView2.ColumnHeaders(colNo + 1).Text
If showImage Then
.fmt = HDF_STRING Or HDF_IMAGE Or HDF_BITMAP_ON_RIGHT
.iImage = imgIconNo
Else
.fmt = HDF_STRING
End If
End With
Call SendMessage(hHeader, HDM_SETITEM, colNo, HD)
End SubPublic Sub ShowHeaderIcon3(colNo As Long, imgIconNo As Long, showImage As Long)
Dim hHeader    As Long
Dim HD    As HD_ITEM
hHeader = SendMessage(Form1.ListView3.hWnd, LVM_GETHEADER, 0, ByVal 0)
With HD
.mask = HDI_IMAGE Or HDI_FORMAT
.pszText = Form1.ListView3.ColumnHeaders(colNo + 1).Text
If showImage Then
.fmt = HDF_STRING Or HDF_IMAGE Or HDF_BITMAP_ON_RIGHT
.iImage = imgIconNo
Else
.fmt = HDF_STRING
End If
End With
Call SendMessage(hHeader, HDM_SETITEM, colNo, HD)
End Sub

解决方案 »

  1.   


    [cCODE=VB]Public Sub ShowHeaderIcon(colNo As Long, imgIconNo As Long, showImage As Long,lv as ListView) 
    Dim hHeader    As Long 
    Dim HD    As HD_ITEM 
    hHeader = SendMessage(lv.hWnd, LVM_GETHEADER, 0, ByVal 0) 
    With HD 
    .mask = HDI_IMAGE Or HDI_FORMAT 
    .pszText = lv.ColumnHeaders(colNo + 1).Text 
    If showImage Then 
    .fmt = HDF_STRING Or HDF_IMAGE Or HDF_BITMAP_ON_RIGHT 
    .iImage = imgIconNo 
    Else 
    .fmt = HDF_STRING 
    End If 
    End With 
    Call SendMessage(hHeader, HDM_SETITEM, colNo, HD) 
    End Sub 
    '调用示例:'ShowHeaderIcon(colNo, imgIconNo, showImage,Form1.ListView1)
    'ShowHeaderIcon(colNo, imgIconNo, showImage,Form1.ListView2)
    'ShowHeaderIcon(colNo, imgIconNo, showImage,Form1.ListView3)
    [/Code]
      

  2.   


    Public Sub ShowHeaderIcon(colNo As Long, imgIconNo As Long, showImage As Long,lv as ListView) 
    Dim hHeader    As Long 
    Dim HD    As HD_ITEM 
    hHeader = SendMessage(lv.hWnd, LVM_GETHEADER, 0, ByVal 0) 
    With HD 
    .mask = HDI_IMAGE Or HDI_FORMAT 
    .pszText = lv.ColumnHeaders(colNo + 1).Text 
    If showImage Then 
    .fmt = HDF_STRING Or HDF_IMAGE Or HDF_BITMAP_ON_RIGHT 
    .iImage = imgIconNo 
    Else 
    .fmt = HDF_STRING 
    End If 
    End With 
    Call SendMessage(hHeader, HDM_SETITEM, colNo, HD) 
    End Sub 
    '调用示例: 
    'ShowHeaderIcon(colNo, imgIconNo, showImage,Form1.ListView1) 
    'ShowHeaderIcon(colNo, imgIconNo, showImage,Form1.ListView2) 
    'ShowHeaderIcon(colNo, imgIconNo, showImage,Form1.ListView3)