Multiselect funktioniert nur bis 6
-
Hi
Ich habe folgendes Problem... Ich habe ein Dateiauswahlfeld (welches eine Mehrfachauswahl erlaubt) wenn ich jedoch mehr als 6 Dateien auswähle passiert nichts! Das ganze ist noch in VS6 geschrieben. Wird jedoch auf VS 2003 poritert. Woran liegt das Problem??
Hier mein Code:
CFileDialog cfd(TRUE , "" , NULL, OFN_HIDEREADONLY | OFN_ALLOWMULTISELECT , "Alle Files(*.*)|*.*|" , NULL); if(cfd.DoModal() == IDOK ) { POSITION nDatei; nDatei=cfd.GetStartPosition(); do { szDatei=cfd.GetNextPathName(nDatei); } }Vielen Dank!
-
Dein Quellcode enthält Fehler. Bitte poste den Quellcode hier, den du auch kompilieren kannst.
-
CFileDialog cfd(TRUE , "" , NULL, OFN_HIDEREADONLY | OFN_ALLOWMULTISELECT , "Alle Files(*.*)|*.*|" , NULL); if(cfd.DoModal() == IDOK ) { POSITION nDatei; nDatei=cfd.GetStartPosition(); do { szDatei=cfd.GetNextPathName(nDatei); } while(nDatei); }Die ganze Funktion kann ich nicht posten, da darin in sehr viele Funktionen verwiesen wird...
-
Das Problem ist bei Design.
m_ofn.nMaxFile und m_ofn.lpstrFile musst Du größer bereitstellen.
Standardmässig wird hier IMHO nur _MAX_PATH allokiert.Das ganze ist komplett in der Doku in der MSDN it Beispiel beschrieben:
CFileDialog dlgFile(...); ... CString fileName; dlgFile.GetOFN().lpstrFile = fileName.GetBuffer(<very large number>); dlgFile.GetOFN().nMaxFile = <very large number>; INT_PTR nResult = dlgFile.DoModal(); fileName.ReleaseBuffer();http://msdn2.microsoft.com/en-us/library/dk77e5e7(VS.80).aspx
-
Und wie genau äußert sich das Problem jetzt?
(Ich würde ja vermuten, daß der Dialog einfach zu wenig Platz hatte, alle Dateinamen unterzubringen)
-
Danke!
Nun funktioniert das Ganze!