VB6 - Adicionar um scroll horizontal no ListBox

Dezembro 2016


No VB6 as áreas de listas não implementam um Scroll (rolagem) horizontal, coisa embaraçosa se a extensão dos textos é maior que a largura do ListBox.
Isso exige a expansão do ListBox em proporções que não são, necessariamente, desejadas para o design.

Estas poucas linhas de código geram um Scroll horizontal no ListBox.
  • Abrir um novo projeto.
  • Colar o código abaixo no módulo da forma.

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  
    'Adaptar os valores do scroll horizontal.  
    If Lg > List1.Width Then  
        HorizontalSrcoll List1, Lg  
    End If  
End Sub  

'Adaptar os valores do 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  
  • Baixar o projeto.

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


Tradução feita por Lucia Maurity y Nouira

Veja também :
Este documento, intitulado « VB6 - Adicionar um scroll horizontal no ListBox »a partir de CCM (br.ccm.net) está disponibilizado sob a licença Creative Commons. Você pode copiar, modificar cópias desta página, nas condições estipuladas pela licença, como esta nota aparece claramente.