Hallo Ayla,
geht leider nicht ganz so einfach, aber mit folgendem Beispiel sollte es klappen (du brauchst dazu nur ein Formular Form1 und eine Listbox List1):
'Dieser Source stammt von http://www.activevb.de
'und kann frei verwendet werden. Für eventuelle Schäden
'wird nicht gehaftet.
'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
'Ansonsten viel Spaß und Erfolg mit diesem Source!
'------------- Anfang Projektdatei Projekt1.vbp -------------
’ Es muss ein Verweis auf ‚Standard OLE Types‘ gesetzt werden.
’ Es muss ein Verweis auf ‚Microsoft DAO 3.0 Object Library‘ gesetzt
’ werden.
'--------- Anfang Formular „Form1“ alias Form1.frm ---------
'Control ListBox: List1
Option Explicit
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_SETHORIZONTAL = &H194
Private Sub Form_Load()
List1.AddItem „Gurkenschalen schmecken nicht“
List1.AddItem „Bananenschalen schmecken nicht“
List1.AddItem „Apfelschalen schmecken nicht“
List1.AddItem „Orangenschalen schmecken nicht“
List1.AddItem „Grabschalen schmecken nicht“
Call CreateBar
End Sub
Private Sub CreateBar()
Dim X&, Max&, Akt&, Result&, cForm As Form
Set cForm = Me
Set cForm.Font = List1.Font
For X = 0 To List1.ListCount - 1
Akt = cForm.TextWidth(List1.List(X))
If Akt > Max Then Max = Akt
Next
Max = Max \ Screen.TwipsPerPixelX
Result = SendMessage(List1.hwnd, LB_SETHORIZONTAL, _
Max, ByVal 0)
Set cForm = Nothing
End Sub
'---------- Ende Formular „Form1“ alias Form1.frm ----------
'-------------- Ende Projektdatei Projekt1.vbp --------------