Rubrik: Controls · Sonstiges | VB-Versionen: VB4, VB5, VB6 | 18.11.00 |
Einträge aus DriveListBox entfernen Die DriveListBox ist eine tolle Sache. Alle im System befindlichen Laufwerke werden aufgelistet, und der User darf sich was aussuchen. Doch was tun,... | ||
Autor: Wolfgang Kluge | Bewertung: | Views: 13.901 |
www.vbwelt.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Die DriveListBox ist eine tolle Sache. Alle im System befindlichen Laufwerke werden aufgelistet, und der User darf sich was aussuchen. Doch was tun, wenn der User erst gar nicht auf die Idee kommen darf zB. Laufwer A: auszuwählen. Immer eine MessageBox aufkommen lassen, wenn er es doch tut ist eine eher unprofessionelle Lösung. Wozu gibt es denn API-Funktionen.
Und mal wieder, wie sooft, ist es die Funktion SendMessage, die dies ermöglicht.
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
Mit diesem Aufruf wird immer das erste Element aus der DriveListBox entfernt. Aufpassen muß man, wenn man mehrere Einträge löschen will, denn wenn erstmal ein Eintrag weg ist, rutscht der ganze Rest hinterher. Auch bleibt mindestens ein Laufwerk übrig. (sonst ergäbe das ganze ja auch keinen Sinn)
' Eintrag aus Laufwerkslistbox entfernen Call SendMessage(Drive1.hwnd, CB_DELETESTRING, 0&, 0&)