En gros c'est une fonction pratique plus qu'autre chose mais bon je me suis dit que cela pouvait intéresser du monde...
Cette fonction sert pour les ListView avec une seule colonne (avec ou sans icone, avec ou sans checkbox) pour adapter la largeur de la colonne à la largeur du plus large listitem afin d'avoir un réel rendu de FullRowSelect
Propriétés indispensables du listview pour cette fonction:
View=lvwReport
FullRowSelect=True
Avoir au moins une colonne
Source / Exemple :
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 Declare Function LockWindowUpdate Lib "user32" (ByVal hwndLock As Long) As Long
Private Const LVM_FIRST = &H1000
Private Const LVM_SETCOLUMNWIDTH = LVM_FIRST + 30
Private Const LVSCW_AUTOSIZE = -1
Private Sub RefreshLV(LV As ListView)
LockWindowUpdate LV.Hwnd
Call SendMessage(LV.Hwnd, LVM_SETCOLUMNWIDTH, 0, LVSCW_AUTOSIZE)
If LV.ColumnHeaders(1).Width < LV.Width Then
If LV.Height > (LV.ListItems.Count * 270) Then
LV.ColumnHeaders(1).Width = LV.Width - 80
Else
If LV.ColumnHeaders(1).Width < LV.Width - 320 Then
LV.ColumnHeaders(1).Width = LV.Width - 320
End If
End If
End If
LockWindowUpdate 0&
End Sub
Conclusion :
Voilà , c'est pas bien méchant mais ça peut toujours servir...
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.