| SendMessage |
| |
| |
| Das FileListBox-Steuerelement ist ziemlich langsam. Windows stellt für Listenfelder einen eigenen |
| Darstellungsmodus zur Verfügung, bei dem Laufwerke, Ordner und Dateien wahlweise angezeigt |
| werden können. In folgendem Beispiel bezeichnet List1 ein ListBox-Steuerelement: |
| |
| Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" _ |
| (ByVal hWnd As Long, ByVal wMsg As Long, _ |
| ByVal wParam As Long, ByRef lParam As String) As Long | |
| |
| Private Const LB_DIR As Long = &H18D& | ListBox für Dateianzeige. |
| Private Const DDL_READWRITE As Long = &H0& | Dateien ohne spezielle Attribute anzeigen. |
| Private Const DDL_READONLY As Long = &H1& | Schreibgeschützte Dateien anzeigen. |
| Private Const DDL_HIDDEN As Long = &H2& | Versteckte Dateien anzeigen. |
| Private Const DDL_SYSTEM As Long = &H4& | Systemdateien anzeigen. |
| Private Const DDL_DIRECTORY As Long = &H10& | Ordner anzeigen. |
| Private Const DDL_ARCHIVE As Long = &H20& | Archivierte Dateien anzeigen. |
| Private Const DDL_DRIVES As Long = &H4000& | Laufwerke anzeigen. |
| |
| ' Nur Dateien mit dem gewünschten Attribut anzeigen, sonst werden Dateien ohne spezielle |
| ' Attribute immer angezeigt. |
| Private Const DDL_EXCLUSIVE As Long = &H8000& | |
| |
| ' Der Einsatz wäre mit dem folgenden Code möglich: die Konstanten werden nacheinander in separaten Aufrufen |
| ' von 'SendMessage' gesendet, da sonst keine Sortierung nach Laufwerken, Ordnern und Dateien erfolgt. |
| |
| ' Laufwerke hinzufügen. | |
| Call SendMessage(Form1.List1.hWnd, LB_DIR, _ | |
| DDL_DRIVES Or DDL_EXCLUSIVE, ByVal "C:\*.*") | |
| |
| ' Ordner hinzufügen. | |
| Call SendMessage(Form1.List1.hWnd, LB_DIR, _ | |
| DDL_DIRECTORY Or DDL_EXCLUSIVE, ByVal "C:\*.*") | |
| |
| ' Dateien ohne spezielle Attribute hinzufügen. | |
| Call SendMessage(Form1.List1.hWnd, LB_DIR, 0&, ByVal "C:\*.*") | |
| |