|
Die DriveListBox liefert Ihnen eine Auswahl der aktuell auf einem Rechner verfügbaren Laufwerke (Disketten- und CD-ROM-Laufwerke, Festplatten, RAM-Disks, Netzlaufwerke). Allerdings ist dieses Steuerelement, ganz entgegen seinem Namen, in Wirklichkeit eine ComboBox. Wenn Sie nun tatsächlich die Laufwerksliste in einer ListBox benötigen sollten, können Sie eine solche mittels der Nachricht LB_DIR und dem Optionsflag DDL_DRIVES über die API-Funktion SendMessage mit den aktuell verfügbaren Laufwerksbuchstaben füllen. Das Ergebnis sieht allerdings nicht ganz so ansehnlich aus, wie bei der Visual Basic-eigenen Combo-DriveListBox (aber besser als gar nichts, oder?).
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
Public Sub ListBoxDrives(ListBox As ListBox)
Const LB_DIR = &H18D
Const DDL_DRIVES = &H4000
With ListBox
.Clear
SendMessage .hwnd, LB_DIR, DDL_DRIVES, 0&
End With
End Sub
Wenn Sie eine Laufwerksliste zwar in einem einzeiligen Steuerelement, aber lieber im "UpDown"-Stil anstelle einer ComboBox zur Verfügung stellen möchten, setzen Sie die Height-Eigenschaft einer wie oben beschrieben gefüllten ListBox im Design-Modus oder zur Laufzeit auf 1 und lassen die Eigenschaft IntegralHeight auf True. Damit auch immer die eine sichtbare Zeile die aktuelle Auswahl darstellt (den ListIndex), setzen Sie im Scroll-Ereignis der ListBox den ListIndex gleich dem TopIndex:
Public Sub List1_Scroll()
With List1
.ListIndex = .TopIndex
End With
End Sub
|