hallo leute
-
Kann mir vielleicht jemand verraten warum der folgende code bei mehr als 17 Datein als Auswahl nicht funktioniert!?!? (MSDN half nicht)
CFileDialog d(TRUE, NULL, NULL, OFN_ALLOWMULTISELECT, NULL, this); d.DoModal(); //Dialog zeigen POSITION p = d.GetStartPosition(); //Startposition bestimmen while (p != NULL){ //solange noch andere Filenames da sind MessageBox(d.GetNextPathName(p)); //Name ausgeben }vielen dank.
gruss
-
hi,
woran das genau lag weiß ich nicht mehr, aber du solltest es mal so probieren...
TCHAR newString[20480]; newString[0] = 0; CDlgSelectFiles oDlgSelFiles( true, // true für FileOpen "*.?pp", // DefExtension NULL, // FileName OFN_OVERWRITEPROMPT|OFN_ALLOWMULTISELECT, // Flags "Alle Dateien (*.*)|*.*|Quellcodedateien (*.?pp)|*.?pp||", // Filter NULL); // pParent oDlgSelFiles.m_ofn.lpstrFile = newString; oDlgSelFiles.m_ofn.nMaxFile = 20480; int iRet = oDlgSelFiles.DoModal();
-
bin nicht der mfc-experte aber mein compiler mag CDlgSelectFiles ueberhaupt nicht.
andere vorschlaege?
danke.
-
*plonk*

Versuch es mal mit "CFileDialog", okay?

-
vielleicht noch folgendes: warum funktioniert das ganze jetzt und hat vorher nicht funktioniert ???
danke.
-
Die Dlg für Fileauswahl haben einen begrenzten Puffer für die ausgewählten Dateinamen. Bedenke, dass dort immer der komplette Pfad für jede Datei drin steht. Je tiefer die Dateihierarchie und je länger die Foldernamen, je weniger Dateien kann man auswählen.
Der Puffer wurde mit
oDlgSelFiles.m_ofn.nMaxFile = 20480;
vergrößert und so kann man jetzt auch mehr Dateien öffnen.