Bonjour,
Je ne suis pas l'auteur du code qui suit (qui fait ta "chose")
Sur une form : une listbox List1 et un bouton Command1
Code :
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_Activate()
For i = 1 To 100
List1.AddItem "aaaaaaaaaaaaaaaaaaaaaaaavvvaaaaaaaaaaaaaaaaaaaaaaaabbbbb"
Next
End Sub
Private Sub Command1_Click()
HorizontalSbar List1
End Sub
Private Sub HorizontalSbar(toto As Control)
Dim lngReturn As Long
Dim lngExtent As Long
lngExtent = 4 * (toto.Width / Screen.TwipsPerPixelX)
lngReturn = SendMessage(toto.hwnd, LB_SETHORIZONTALEXTENT, lngExtent, 0&)
End Sub
et dans un module :
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_Activate()
For i = 1 To 100
List1.AddItem "aaaaaaaaaaaaaaaaaaaaaaaavvvaaaaaaaaaaaaaaaaaaaaaaaabbbbb"
Next
End Sub
Private Sub Command1_Click()
HorizontalSbar List1
End Sub
Private Sub HorizontalSbar(toto As Control)
Dim lngReturn As Long
Dim lngExtent As Long
lngExtent = 4 * (toto.Width / Screen.TwipsPerPixelX)
lngReturn = SendMessage(toto.hwnd, LB_SETHORIZONTALEXTENT, lngExtent, 0&)
End Sub