hallo!
hab da gleich 2 fragen:
- wie kann man den bei cfiledialog angeben, dass man nicht
nur eine
datei öffnen lassen will sondern mehrere?
Vor dem DoModal(
) muss m_ofn.Flags
auf OFN_ALLOWMULTISELECT
gesetz werden.
Um die Namen zu ermitteln wird nicht GetFileName() benutzt sondern es werden GetStartPosition()
und GetNextPathName()
verwendet.
- die geöffneten dateinamen möchte ich an ein listfeld
übergeben. mit
einem eingabefeld gehts ja, aber da dürften mehrere nicht
gehen
oder? jedenfalls wenn ich statt eingabe- ein listfeld nehme
steht
auch nach updatedata(false) nix im listfeld, obwohl gleiche
variable usw wie das eingabefeld, wo es ja geht.
CFileDialog öffnet die Dateien nicht, sich liefert nur die Namen.
Um die Namen in eine Listbox auszugeben, müssen sie wie in 1) ermittelt werden und mit AddString() an die Listbox übergeben.
Beispiel:
CFileDialog cfd(...); // Parameter setzen (Pfad , Extension usw. )
// m\_ctrlLB --\> Listbox
POSITION pos;
CString csFile;
cfd.m\_ofn.Flags |= OFN\_ALLOWMULTISELECT; // kann auch oben gesetzt werden
/\*
.....
\*/
if(IDOK == cfd-\>DoModal())
{
pos = cfd.GetStartPosition();
while(pos != NULL)
{
csFile = cfd.GetNextPathName(pos);
m\_ctrlLB.AddString(csFile);
}
}