VB6 - Adicionar um scroll horizontal no ListBox

Faça uma pergunta

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


Jean-François Pillou

Nosso conteúdo é produzido em colaboração com especialistas em tecnologia da informação sob o comando de Jean-François Pillou, fundador do CCM.net e diretor digital do Grupo Figaro. CCM é um site sobre tecnologia líder em nível internacional e está disponível em 11 idiomas.

Mais informações sobre a equipe do CCM