VB6 - Ajouter un scroll horizontal dans ListBox

Décembre 2016



En VB6 les zones de listes n'implémente pas un Scroll horizontal, assez gênant si la longueur des textes sont plus long que la largeur de la listBox.
Ce qui oblige à élargir la listBox dans des proportions qui ne sont pas nécessairement souhaitées pour le design.
Ces quelque lignes de code génère un Scroll horizontal dans la listBox.
  • Ouvrir un nouveau projet.
  • Coller le code ci-dessous dans le module de la forme.

Option Explicit 

Private Const LB_SETHORIZONTALEXTENT = &H194 
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 Sub Form_Load() 
Dim Lg As Integer, L As Integer, Va As String, i As Integer 
    'Remplir la list avec des lignes longues pour la démo 
    For i = 0 To 20 
        Va = Va & "Test" & i & " " 
        List1.AddItem Va 
        L = TextWidth(List1.List(i)) 
        If Lg < TextWidth(List1.List(i)) Then Lg = L 
    Next 
    'Adapter les valeurs du scroll horizontal. 
    If Lg > List1.Width Then 
        HorizontalSrcoll List1, Lg 
    End If 
End Sub 

'Adapter les valeurs du scroll horizontal. 
Private Sub HorizontalSrcoll(Lt As Control, Lg As Integer) 
Dim Ret As Long 
Dim ScrollMax As Long 
  ScrollMax = (Lg / Screen.TwipsPerPixelX) + 6 
  Ret = SendMessage(Lt.hwnd, LB_SETHORIZONTALEXTENT, ScrollMax, 0&) 
End Sub 
  • Télécharger le projet.

Serveur 1 : ScrollHzList.zip
Serveur réserve : ScrollHzList.zip

A voir également :

Ce document intitulé «  VB6 - Ajouter un scroll horizontal dans ListBox  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.