GetOpenFileName(): Alle Dateien anzeigen bei gewähltem Filter
-
Ich suche eine Möglichkeit wie ich in einem GetOpenFileName Dialog alle Dateien anzeigen kann, wenn der Dateifilter beispielsweise auf *.txt steht.
Bisher habe ich ein Hack gemacht in dem ich in der Edit Control Box edt1, zur Eingabe des Dateinnamens, ein *** hineingeschrieben habe und die Enter Taste simuliert habe. Doch seit dem Wechsel auf ein neues VS funktioniert dies nicht mehr, da ich das Edit Control Fenster nicht mehr finde.
-
Du musst im OFD doch immer zwei Dinge angeben: Einmal den Text (z.B. "Textdatei (.txt)" und dann den Filter (".txt"). geb einfach beim Filter "." an, dann werden auch alle Dateien angezeigt....
-
Du musst im OFD doch immer zwei Dinge angeben: Einmal den Text (z.B. "Textdatei (.txt)" und dann den Filter (".txt"). geb einfach beim Filter "." an, dann werden auch alle Dateien angezeigt....
Hmm, da liegt halt der Hase begraben. Wenn ich das so mache, werden immer alle Dateien angezeigt. Und das möchte ich nicht. Ich möchte das nur dann alle Dateien angezeigt werden, wenn der Benutzer die Checkbox "Alle Dateien anzeigen" wählt.
Ich habe übrigens eine Lösung für meinen Hack gefunden.
UINT_PTR CALLBACK LoadDialogHookProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { //... if (uMsg == WM_COMMAND) { // ... if (LOWORD(wParam) == IDC_SHOWALLFILES) { HWND hWndOFN = GetParent(hWnd); SendMessage(hWndOFN, CDM_SETCONTROLTEXT, edt1, reinterpret_cast<LPARAM>("*")); // statt: SetDlgItemText(hWndOFN, edt1, "*") // Interresant: GetDlgItem(hWndOFN, edt1) liefert NULL zurück. // ... } } // ... }
-
Du hast doch nFilterIndex...