![]() |
Tipp 0529
|
DriveListBox-Einträge entfernen
|
 |
|
Autor/Einsender: Datum: |
|
Detlev Schubert 10.04.2007 |
|
Entwicklungsumgebung: |
|
VB 6 |
|
|
Mit der DriveListBox stellt Visual Basic eine einfache Möglichkeit zur Verfügung, eine Laufwerksauswahl in die eigene Anwendung zu integrieren. Leider ist dieses Steuerelement relativ unflexibel. So lassen sich beispielsweise zur Laufzeit keine neuen Elemente wie z.B. ein FTP-Server hinzufügen.
|
Da es sich bei der DriveListBox lediglich um eine ganz normale ComboBox handelt, ist es möglich, mit Hilfe der API-Funktion
Sendmessage und der Nachrichtenkonstante CB_DELETESTRING Einträge zu löschen, um zu verhindern, dass beispielsweise der Anwender auf Diskettenlaufwerke oder CD/DVD-Laufwerke zugreift. Sendmessage erwartet neben dem Handle der DriveListBox und der Konstante im 3. Parameter den Index des zu entfernenden Eintrags, der sich über den ListIndex ermitteln lässt.
|
Zu beachten ist, dass durch das Zuweisen eines ListIndex nach dem Entfernen eines Eintrags die Box automatisch refreshed wird, so dass alle vorher gelöschten Einträge dann wieder vorhanden sind.
|
|
|
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
Private Const CB_DELETESTRING = &H144
Private Sub Command1_Click()
SendMessage Drive1.hWnd, CB_DELETESTRING, Drive1.ListIndex, 0
Command1.Enabled = False
End Sub
|
|
|
|
|
Windows-Version |
95 |
 |
|
98 |
 |
|
ME |
 |
|
NT |
 |
|
2000 |
 |
|
XP |
 |
|
Vista |
 |
|
Win
7 |
 |
|
|
VB-Version |
VBA 5 |
 |
|
VBA 6 |
 |
|
VB 4/16 |
 |
|
VB 4/32 |
 |
|
VB 5 |
 |
|
VB 6 |
 |
|
|
|
Download (2,5
kB)
|
Downloads bisher: [ 310 ]
|
|
|