VB6 - Agregar barra de desplazamiento horizontal a un ListBox

Diciembre 2016



En VB6 el control ListBox no tiene una barra de desplazamiento horizontal, lo que puede ser un problema si el tamaño del texto es mayor que el ancho de la ListBox.
A continuación veremos un código que genera una barra de desplazamiento horizontal en la ListBox.
  • Abre un nuevo proyecto
  • Copia el código de abajo en el modulo.


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
    'Rellenar la lista con líneas largas para la demonstración
    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
    'Adaptar los valores del scroll horizontal.
    If Lg > List1.Width Then
        HorizontalSrcoll List1, Lg
    End If
End Sub

'Adaptar los valores del 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
  • Descargar el proyecto


Servidor 1: ScrollHzList.zip
Servidor de reserva: ScrollHzList.zip


Consulta también :
El documento «VB6 - Agregar barra de desplazamiento horizontal a un ListBox» de CCM (es.ccm.net) se encuentra disponible bajo una licencia Creative Commons. Puedes copiarlo o modificarlo siempre y cuando respetes las condiciones de dicha licencia y des crédito a CCM.