Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: VB4/32,VB5,VB6
Expertise: Intermediate
Dec 15, 2000

Add an horizontal scrollbar to a ListBox control

By default, VB ListBox controls don't display an horizontal scrollbar, so if the items you add to the controls are wider than the control's Width, the end user isn't able to read them in their entirety.

Adding an horizontal scrollbar to a ListBox control is easy, however. You only have to increase the so called the control's horizontal extent, which you do by sending it a LB_SETHORIZONTALEXTENT message. Here's a reusable routine that does the trick:


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
Const LB_SETHORIZONTALEXTENT = &H194

' Set the horizontal extent of the control (in pixel).
' If this value is greater than the current control's width
' an horizontal scrollbar appears.

Sub SetHorizontalExtent(lb As ListBox, ByVal newWidth As Long)
    SendMessage lb.hwnd, LB_SETHORIZONTALEXTENT, newWidth, ByVal 0&
End Sub
The LB_GETHORIZONTALEXTENT message is useful to retrieve the current value of the horizontal extent:

Const LB_GETHORIZONTALEXTENT = &H193

' Return the horizontal extent of the control (in pixel).

Function GetHorizontalExtent(lb As ListBox) As Long
    GetHorizontalExtent = SendMessage(lb.hwnd, LB_GETHORIZONTALEXTENT, 0, _
        ByVal 0&)
End Function

Francesco Balena
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date