How To Add a Horizontal Scroll Bar to a Visual Basic ListBox

This article was previously published under Q192184
This article has been archived. It is offered "as is" and will no longer be updated.
The normal ListBox that comes with Visual Basic for Windows does not have ahorizontal scroll bar. This can be a problem when the item in a ListBoxextends past the boundaries of the ListBox. To add a horizontal scroll barto the control, you can call the Windows API SendMessage function with theLB_SETHORIZONTALEXTENT constant.
This message sets the width in pixels by which a ListBox can scrollhorizontally. If the width of the ListBox is smaller than this value,a horizontal scroll bar will be added to allow horizontally scrolling itemsin the ListBox.

Step-by-Step Example

  1. Create a new Standard EXE project in Visual Basic. Form1 is created by default.
  2. Add a CommandButton and a ListBox to Form1.
  3. Paste the following code into the general declaration section of Form1:
          Option Explicit      Private Declare Function SendMessageByNum Lib "user32" _        Alias "SendMessageA" (ByVal hwnd As Long, ByVal _        wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long      Const LB_SETHORIZONTALEXTENT = &H194      Private Sub Command1_Click()         Dim s As String         Static x As Long         s = InputBox("Please enter any text", "List scroll", _           "this is a simple scrollbar sample for demonstration purposes")         List1.AddItem s         If x < TextWidth(s & "  ") Then            x = TextWidth(s & "  ")           If ScaleMode = vbTwips Then _               x = x / Screen.TwipsPerPixelX  ' if twips change to pixels           SendMessageByNum List1.hwnd, LB_SETHORIZONTALEXTENT, x, 0         End If      End Sub						
  4. Run the project and click on Command1. You will be prompted to enter a text string to be added to the ListBox. Each time you enter a string, the code checks to see if it is longer than the previous longest string and will adjust the scroll bar as necessary.
For information on performing this task in 16-bit versions of Visual Basic,please see the following article in the Microsoft Knowledge Base:
80190 : How To Add a Horizontal Scroll Bar to Visual Basic ListBox
kbDSupport kbDSD kbVBp kbVBp400 kbVBp500 kbVBp600 kbCtrl kbAPI

Article ID: 192184 - Last Review: 12/05/2015 09:13:28 - Revision: 3.2

Microsoft Visual Basic 5.0 Learning Edition, Microsoft Visual Basic 6.0 Learning Edition, Microsoft Visual Basic 5.0 Professional Edition, Microsoft Visual Basic 6.0 Professional Edition, Microsoft Visual Basic 5.0 Enterprise Edition, Microsoft Visual Basic 6.0 Enterprise Edition

  • kbnosurvey kbarchive kbhowto KB192184