Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » fileopen multiselect - fehler?!?

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
09.09.2003, 09:18 Uhr
~fireball
Gast


hallo! hab mit vc++6 n fileopen gemacht, wo man mehrere dateien gleichzeitig öffnen kann:

C++:
void CDialogDlg::OnFileopen()
{
CFileDialog m_ldFile(TRUE);
m_ldFile.m_ofn.lpstrFilter = "mp3-Datei (*.mp3)\0*.mp3";
POSITION pos;
CString csFile;
m_ldFile.m_ofn.Flags |= OFN_ALLOWMULTISELECT;
if (m_ldFile.DoModal() == IDOK)
{
pos = m_ldFile.GetStartPosition();
while(pos != NULL)
{
csFile = m_ldFile.GetFileTitle();
m_list.AddString(csFile);
UpdateData(FALSE);
}
}

}


aber das haut nich hin, das programm reagiert beim datei öffnen nicht mehr, als müßte er ne wahnsinnsmenge an dateien öffnen u. in die variable packen?! was hab ich da ´falsch gemacht?


Bearbeitung von loddab:
cpp-Tags gesetzt

Dieser Post wurde am 09.09.2003 um 11:17 Uhr von Loddab editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
09.09.2003, 09:53 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


ganz einfach, du hast eine endlosschleife:


C++:
pos = m_ldFile.GetStartPosition();
while(pos != NULL)
{
    csFile = m_ldFile.GetFileTitle();
    m_list.AddString(csFile);
    UpdateData(FALSE);
}



anstatt dem UpdateData solltest du GetNextPathName(&pos); aufrufen, sonst bleibt pos immer !=NULL
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
09.09.2003, 10:42 Uhr
~fireball
Gast


ok danke erstma!
hab jetzt

C++:
    while(pos != NULL)
        {
            csFile = m_ldFile.GetFileTitle();
            m_list.AddString(csFile);
            m_ldFile.GetNextPathName(&pos);
        }


da sagter aber beim kompilieren:

Konvertierung des Parameters 1 von 'struct __POSITION ** ' in 'struct __POSITION *& ' nicht möglich

ist das weil: pos = m_ldFile.GetStartPosition(); ??
muss das vielleicht n zeiger werden? mit *= gehts jedenfalls nicht.


Bearbeitung von loddab:
cpp-Tags gesetzt

Dieser Post wurde am 09.09.2003 um 11:18 Uhr von Loddab editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
09.09.2003, 11:15 Uhr
~fireball
Gast


alles klar hab es jetzt!

C++:
while(pos != NULL)
        {
            csFile = m_ldFile.GetNextPathName(pos);
            m_list.AddString(csFile);
        
            
        }



Bearbeitung von loddab:
cpp-Tags gesetzt

Dieser Post wurde am 09.09.2003 um 11:18 Uhr von Loddab editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: